/**
 * @license
 * Copyright 2025 Vybestack LLC
 * SPDX-License-Identifier: Apache-2.0
 */
import { z } from 'zod';
/**
 * Schema for an individual extension setting definition.
 *
 * Extension settings describe configuration values that an extension requires
 * from the user, typically sourced from environment variables.
 *
 * @example
 * ```typescript
 * const apiKeySetting = {
 *   name: 'apiKey',
 *   description: 'Your API key for the service',
 *   envVar: 'MY_SERVICE_API_KEY',
 *   sensitive: true
 * };
 * ```
 */
export declare const ExtensionSettingSchema: z.ZodObject<{
    /**
     * The name of the setting (used for identification and display)
     */
    name: z.ZodString;
    /**
     * Optional human-readable description of what this setting is for
     */
    description: z.ZodOptional<z.ZodString>;
    /**
     * The environment variable name where this setting's value should be sourced from
     */
    envVar: z.ZodString;
    /**
     * Whether this setting contains sensitive data (e.g., API keys, passwords)
     * Sensitive settings may be masked in UI and logs
     */
    sensitive: z.ZodDefault<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    name: string;
    envVar: string;
    sensitive: boolean;
    description?: string | undefined;
}, {
    name: string;
    envVar: string;
    description?: string | undefined;
    sensitive?: boolean | undefined;
}>;
/**
 * Type representing a single extension setting
 */
export type ExtensionSetting = z.infer<typeof ExtensionSettingSchema>;
/**
 * Schema for an array of extension settings
 */
export declare const ExtensionSettingsArraySchema: z.ZodArray<z.ZodObject<{
    /**
     * The name of the setting (used for identification and display)
     */
    name: z.ZodString;
    /**
     * Optional human-readable description of what this setting is for
     */
    description: z.ZodOptional<z.ZodString>;
    /**
     * The environment variable name where this setting's value should be sourced from
     */
    envVar: z.ZodString;
    /**
     * Whether this setting contains sensitive data (e.g., API keys, passwords)
     * Sensitive settings may be masked in UI and logs
     */
    sensitive: z.ZodDefault<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    name: string;
    envVar: string;
    sensitive: boolean;
    description?: string | undefined;
}, {
    name: string;
    envVar: string;
    description?: string | undefined;
    sensitive?: boolean | undefined;
}>, "many">;
/**
 * Type representing multiple extension settings
 */
export type ExtensionSettings = z.infer<typeof ExtensionSettingsArraySchema>;
