/**
 * DXT Extension Configuration Types
 * Enhanced: Full Claude Desktop-compatible manifest schema with user_config support
 */
/**
 * User configuration parameter definition in manifest
 */
export interface UserConfigParam {
    type: "string" | "number" | "boolean" | "directory" | "file";
    title?: string;
    description?: string;
    required?: boolean;
    default?: any;
    multiple?: boolean;
    min?: number;
    max?: number;
}
/**
 * Server configuration within manifest
 */
export interface ManifestServerConfig {
    type: "node" | "python" | "executable";
    entry_point?: string;
    mcp_config: {
        command: string;
        args?: string[];
        env?: Record<string, string>;
    };
}
/**
 * Enhanced DXT manifest schema - Claude Desktop compatible
 */
export interface DxtManifest {
    dxt_version: string;
    name: string;
    version: string;
    description?: string;
    author?: string;
    license?: string;
    repository?: string;
    server: ManifestServerConfig;
    user_config?: Record<string, UserConfigParam>;
    main?: string;
}
/**
 * User settings for an extension
 */
export interface ExtensionUserConfig {
    isEnabled: boolean;
    userConfig?: Record<string, any>;
}
/**
 * Extension configuration in the user's config.json
 */
export interface ExtensionConfig {
    directory?: string;
    autoDiscovery?: boolean;
    settings: Record<string, ExtensionUserConfig>;
}
/**
 * Main hypertool configuration structure
 */
export interface HypertoolConfig {
    extensions?: ExtensionConfig;
}
/**
 * Extension metadata for persistence tracking
 */
export interface ExtensionMetadata {
    name: string;
    version: string;
    sourceFile: string;
    sourceModified: number;
    installedPath: string;
    installedAt: number;
    lastValidated?: number;
    isValid?: boolean;
    validationErrors?: string[];
}
/**
 * Validation result for extension configuration
 */
export interface ValidationResult {
    isValid: boolean;
    errors: string[];
    warnings: string[];
}
/**
 * Extension runtime configuration after validation and template substitution
 */
export interface ExtensionRuntimeConfig {
    name: string;
    enabled: boolean;
    manifest: DxtManifest;
    installedPath: string;
    serverConfig: {
        command: string;
        args: string[];
        env: Record<string, string>;
        cwd: string;
    };
    validationResult: ValidationResult;
}
//# sourceMappingURL=dxt-config.d.ts.map