import { Setting, SettingsSchema } from '../types';
export declare const isSetting: (value: Setting | SettingsSchema) => value is Setting;
export declare const isSettingsSchema: (value: Setting | SettingsSchema) => value is SettingsSchema;
export declare const extractDefaults: (settings: SettingsSchema) => any;
/**
 * Extracts all paths in the schema that are marked as secrets.
 * Returns an array of dot-separated paths (e.g., ['integrations.api.key', 'auth.token'])
 */
export declare const extractSecretPaths: (schema: SettingsSchema, parentKey?: string) => string[];
/**
 * Placeholder value used to indicate that a secret exists but its value is hidden.
 */
export declare const SECRET_PLACEHOLDER = "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022";
/**
 * Masks secret values in a settings object.
 * Secret fields with a non-empty value are replaced with a placeholder; empty,
 * null, or unset values are left as-is so the admin UI shows an empty field
 * (rather than appearing to hide a secret that doesn't actually exist).
 * This is used when returning settings to the admin UI.
 */
export declare const maskSecrets: (settings: Record<string, unknown>, secretPaths: string[]) => Record<string, unknown>;
/**
 * Gets the setting definition at a given path, if it exists.
 */
export declare const getSettingAtPath: (schema: SettingsSchema, path: string) => Setting | null;
/**
 * Checks if a given path is a secret in the schema.
 */
export declare const isSecretPath: (schema: SettingsSchema, path: string) => boolean;
