import { z } from 'zod';
declare const ProviderConfigSchema: z.ZodObject<{
    strategy: z.ZodOptional<z.ZodEnum<["symlink", "copy", "auto"]>>;
    enabled: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    strategy?: "symlink" | "copy" | "auto" | undefined;
    enabled?: boolean | undefined;
}, {
    strategy?: "symlink" | "copy" | "auto" | undefined;
    enabled?: boolean | undefined;
}>;
export declare const SyncConfigSchema: z.ZodObject<{
    version: z.ZodLiteral<1>;
    defaultStrategy: z.ZodEnum<["symlink", "copy", "auto"]>;
    knownStrays: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    providers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
        strategy: z.ZodOptional<z.ZodEnum<["symlink", "copy", "auto"]>>;
        enabled: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        strategy?: "symlink" | "copy" | "auto" | undefined;
        enabled?: boolean | undefined;
    }, {
        strategy?: "symlink" | "copy" | "auto" | undefined;
        enabled?: boolean | undefined;
    }>>>;
}, "strip", z.ZodTypeAny, {
    version: 1;
    defaultStrategy: "symlink" | "copy" | "auto";
    knownStrays?: string[] | undefined;
    providers?: Record<string, {
        strategy?: "symlink" | "copy" | "auto" | undefined;
        enabled?: boolean | undefined;
    }> | undefined;
}, {
    version: 1;
    defaultStrategy: "symlink" | "copy" | "auto";
    knownStrays?: string[] | undefined;
    providers?: Record<string, {
        strategy?: "symlink" | "copy" | "auto" | undefined;
        enabled?: boolean | undefined;
    }> | undefined;
}>;
export type ProviderSyncConfig = z.infer<typeof ProviderConfigSchema>;
export type SyncConfig = z.infer<typeof SyncConfigSchema> & {
    knownStrays: string[];
    providers: Record<string, ProviderSyncConfig>;
};
export declare const DEFAULT_SYNC_CONFIG: SyncConfig;
export declare function normalizeKnownStrayPath(pathValue: string): string | undefined;
export declare function normalizeKnownStrays(paths: readonly string[] | undefined): string[];
export declare function mergeKnownStrays(...pathSets: ReadonlyArray<readonly string[] | undefined>): string[];
export declare function loadSyncConfig(configPath: string, defaults?: SyncConfig): Promise<SyncConfig>;
export declare function saveSyncConfig(configPath: string, config: SyncConfig): Promise<SyncConfig>;
export declare function setProviderEnabled(configPath: string, providerName: string, enabled: boolean): Promise<SyncConfig>;
export declare function appendKnownStray(configPath: string, pathValue: string): Promise<SyncConfig>;
export {};
//# sourceMappingURL=sync-config.d.ts.map