import { z } from 'zod';
export declare const SourceConfigSchema: z.ZodObject<{
    path: z.ZodString;
    recursive: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    maxDepth: z.ZodOptional<z.ZodNumber>;
    pattern: z.ZodDefault<z.ZodOptional<z.ZodString>>;
    directoryPattern: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    indexFile: z.ZodDefault<z.ZodOptional<z.ZodString>>;
}, "strip", z.ZodTypeAny, {
    path: string;
    recursive: boolean;
    pattern: string;
    directoryPattern: boolean;
    indexFile: string;
    maxDepth?: number | undefined;
}, {
    path: string;
    recursive?: boolean | undefined;
    maxDepth?: number | undefined;
    pattern?: string | undefined;
    directoryPattern?: boolean | undefined;
    indexFile?: string | undefined;
}>;
export declare const MarkerConfigSchema: z.ZodObject<{
    startMarker: z.ZodString;
    endMarker: z.ZodString;
    preserveContent: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
}, "strip", z.ZodTypeAny, {
    startMarker: string;
    endMarker: string;
    preserveContent: boolean;
}, {
    startMarker: string;
    endMarker: string;
    preserveContent?: boolean | undefined;
}>;
export declare const ExportConfigSchema: z.ZodObject<{
    style: z.ZodEnum<["named", "default", "namespace", "reexport", "mixed"]>;
    defaultExports: z.ZodDefault<z.ZodOptional<z.ZodEnum<["ignore", "named", "passthrough"]>>>;
    naming: z.ZodOptional<z.ZodObject<{
        transform: z.ZodDefault<z.ZodOptional<z.ZodEnum<["kebab", "camel", "pascal", "preserve"]>>>;
        prefix: z.ZodOptional<z.ZodString>;
        suffix: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        transform: "kebab" | "camel" | "pascal" | "preserve";
        prefix?: string | undefined;
        suffix?: string | undefined;
    }, {
        transform?: "kebab" | "camel" | "pascal" | "preserve" | undefined;
        prefix?: string | undefined;
        suffix?: string | undefined;
    }>>;
    groupByDirectory: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    sort: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
}, "strip", z.ZodTypeAny, {
    sort: boolean;
    style: "named" | "default" | "namespace" | "reexport" | "mixed";
    defaultExports: "passthrough" | "named" | "ignore";
    groupByDirectory: boolean;
    naming?: {
        transform: "kebab" | "camel" | "pascal" | "preserve";
        prefix?: string | undefined;
        suffix?: string | undefined;
    } | undefined;
}, {
    style: "named" | "default" | "namespace" | "reexport" | "mixed";
    sort?: boolean | undefined;
    defaultExports?: "passthrough" | "named" | "ignore" | undefined;
    naming?: {
        transform?: "kebab" | "camel" | "pascal" | "preserve" | undefined;
        prefix?: string | undefined;
        suffix?: string | undefined;
    } | undefined;
    groupByDirectory?: boolean | undefined;
}>;
export declare const TemplateConfigSchema: z.ZodObject<{
    name: z.ZodString;
    export: z.ZodEffects<z.ZodString, string, string>;
    mode: z.ZodDefault<z.ZodEnum<["replace", "partial-replace"]>>;
    requiredFile: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    export: string;
    name: string;
    mode: "replace" | "partial-replace";
    requiredFile?: string | undefined;
}, {
    export: string;
    name: string;
    mode?: "replace" | "partial-replace" | undefined;
    requiredFile?: string | undefined;
}>;
export declare const ProcessingOptionsSchema: z.ZodObject<{
    followSymlinks: z.ZodDefault<z.ZodBoolean>;
    preserveExtensions: z.ZodDefault<z.ZodBoolean>;
    extensions: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
    validateExports: z.ZodDefault<z.ZodBoolean>;
    dryRun: z.ZodDefault<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    followSymlinks: boolean;
    preserveExtensions: boolean;
    extensions: string[];
    validateExports: boolean;
    dryRun: boolean;
}, {
    followSymlinks?: boolean | undefined;
    preserveExtensions?: boolean | undefined;
    extensions?: string[] | undefined;
    validateExports?: boolean | undefined;
    dryRun?: boolean | undefined;
}>;
export declare const GenerationOptionsSchema: z.ZodObject<{
    namedExports: z.ZodDefault<z.ZodBoolean>;
    preserveExtensions: z.ZodDefault<z.ZodBoolean>;
    sortExports: z.ZodDefault<z.ZodBoolean>;
    addBanner: z.ZodDefault<z.ZodBoolean>;
    customBanner: z.ZodOptional<z.ZodString>;
    verbose: z.ZodDefault<z.ZodBoolean>;
}, "strict", z.ZodTypeAny, {
    preserveExtensions: boolean;
    namedExports: boolean;
    sortExports: boolean;
    addBanner: boolean;
    verbose: boolean;
    customBanner?: string | undefined;
}, {
    preserveExtensions?: boolean | undefined;
    namedExports?: boolean | undefined;
    sortExports?: boolean | undefined;
    addBanner?: boolean | undefined;
    customBanner?: string | undefined;
    verbose?: boolean | undefined;
}>;
export type GenerationOptions = z.infer<typeof GenerationOptionsSchema>;
export declare const VariableBarrelDefinitionSchema: z.ZodObject<{
    name: z.ZodString;
    output: z.ZodString;
    template: z.ZodObject<{
        name: z.ZodString;
        export: z.ZodEffects<z.ZodString, string, string>;
        mode: z.ZodDefault<z.ZodEnum<["replace", "partial-replace"]>>;
        requiredFile: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        export: string;
        name: string;
        mode: "replace" | "partial-replace";
        requiredFile?: string | undefined;
    }, {
        export: string;
        name: string;
        mode?: "replace" | "partial-replace" | undefined;
        requiredFile?: string | undefined;
    }>;
    exclude: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    options: z.ZodOptional<z.ZodObject<{
        preserveExtensions: z.ZodDefault<z.ZodBoolean>;
        extensions: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
        validateExports: z.ZodDefault<z.ZodBoolean>;
        dryRun: z.ZodDefault<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        preserveExtensions: boolean;
        extensions: string[];
        validateExports: boolean;
        dryRun: boolean;
    }, {
        preserveExtensions?: boolean | undefined;
        extensions?: string[] | undefined;
        validateExports?: boolean | undefined;
        dryRun?: boolean | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    name: string;
    output: string;
    template: {
        export: string;
        name: string;
        mode: "replace" | "partial-replace";
        requiredFile?: string | undefined;
    };
    options?: {
        preserveExtensions: boolean;
        extensions: string[];
        validateExports: boolean;
        dryRun: boolean;
    } | undefined;
    exclude?: string[] | undefined;
}, {
    name: string;
    output: string;
    template: {
        export: string;
        name: string;
        mode?: "replace" | "partial-replace" | undefined;
        requiredFile?: string | undefined;
    };
    options?: {
        preserveExtensions?: boolean | undefined;
        extensions?: string[] | undefined;
        validateExports?: boolean | undefined;
        dryRun?: boolean | undefined;
    } | undefined;
    exclude?: string[] | undefined;
}>;
export declare const BarrelDefinitionSchema: z.ZodObject<{
    name: z.ZodString;
    output: z.ZodString;
    template: z.ZodObject<{
        name: z.ZodString;
        export: z.ZodEffects<z.ZodString, string, string>;
        mode: z.ZodDefault<z.ZodEnum<["replace", "partial-replace"]>>;
        requiredFile: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        export: string;
        name: string;
        mode: "replace" | "partial-replace";
        requiredFile?: string | undefined;
    }, {
        export: string;
        name: string;
        mode?: "replace" | "partial-replace" | undefined;
        requiredFile?: string | undefined;
    }>;
    exclude: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    options: z.ZodOptional<z.ZodObject<{
        preserveExtensions: z.ZodDefault<z.ZodBoolean>;
        extensions: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
        validateExports: z.ZodDefault<z.ZodBoolean>;
        dryRun: z.ZodDefault<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        preserveExtensions: boolean;
        extensions: string[];
        validateExports: boolean;
        dryRun: boolean;
    }, {
        preserveExtensions?: boolean | undefined;
        extensions?: string[] | undefined;
        validateExports?: boolean | undefined;
        dryRun?: boolean | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    name: string;
    output: string;
    template: {
        export: string;
        name: string;
        mode: "replace" | "partial-replace";
        requiredFile?: string | undefined;
    };
    options?: {
        preserveExtensions: boolean;
        extensions: string[];
        validateExports: boolean;
        dryRun: boolean;
    } | undefined;
    exclude?: string[] | undefined;
}, {
    name: string;
    output: string;
    template: {
        export: string;
        name: string;
        mode?: "replace" | "partial-replace" | undefined;
        requiredFile?: string | undefined;
    };
    options?: {
        preserveExtensions?: boolean | undefined;
        extensions?: string[] | undefined;
        validateExports?: boolean | undefined;
        dryRun?: boolean | undefined;
    } | undefined;
    exclude?: string[] | undefined;
}>;
export declare const BarrelConfigSchema: z.ZodObject<{
    version: z.ZodString;
    barrels: z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        output: z.ZodString;
        template: z.ZodObject<{
            name: z.ZodString;
            export: z.ZodEffects<z.ZodString, string, string>;
            mode: z.ZodDefault<z.ZodEnum<["replace", "partial-replace"]>>;
            requiredFile: z.ZodOptional<z.ZodString>;
        }, "strip", z.ZodTypeAny, {
            export: string;
            name: string;
            mode: "replace" | "partial-replace";
            requiredFile?: string | undefined;
        }, {
            export: string;
            name: string;
            mode?: "replace" | "partial-replace" | undefined;
            requiredFile?: string | undefined;
        }>;
        exclude: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        options: z.ZodOptional<z.ZodObject<{
            preserveExtensions: z.ZodDefault<z.ZodBoolean>;
            extensions: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
            validateExports: z.ZodDefault<z.ZodBoolean>;
            dryRun: z.ZodDefault<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            preserveExtensions: boolean;
            extensions: string[];
            validateExports: boolean;
            dryRun: boolean;
        }, {
            preserveExtensions?: boolean | undefined;
            extensions?: string[] | undefined;
            validateExports?: boolean | undefined;
            dryRun?: boolean | undefined;
        }>>;
    }, "strip", z.ZodTypeAny, {
        name: string;
        output: string;
        template: {
            export: string;
            name: string;
            mode: "replace" | "partial-replace";
            requiredFile?: string | undefined;
        };
        options?: {
            preserveExtensions: boolean;
            extensions: string[];
            validateExports: boolean;
            dryRun: boolean;
        } | undefined;
        exclude?: string[] | undefined;
    }, {
        name: string;
        output: string;
        template: {
            export: string;
            name: string;
            mode?: "replace" | "partial-replace" | undefined;
            requiredFile?: string | undefined;
        };
        options?: {
            preserveExtensions?: boolean | undefined;
            extensions?: string[] | undefined;
            validateExports?: boolean | undefined;
            dryRun?: boolean | undefined;
        } | undefined;
        exclude?: string[] | undefined;
    }>, "many">;
    globalOptions: z.ZodOptional<z.ZodObject<{
        followSymlinks: z.ZodDefault<z.ZodBoolean>;
        preserveExtensions: z.ZodDefault<z.ZodBoolean>;
        extensions: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
        validateExports: z.ZodDefault<z.ZodBoolean>;
        dryRun: z.ZodDefault<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        followSymlinks: boolean;
        preserveExtensions: boolean;
        extensions: string[];
        validateExports: boolean;
        dryRun: boolean;
    }, {
        followSymlinks?: boolean | undefined;
        preserveExtensions?: boolean | undefined;
        extensions?: string[] | undefined;
        validateExports?: boolean | undefined;
        dryRun?: boolean | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    version: string;
    barrels: {
        name: string;
        output: string;
        template: {
            export: string;
            name: string;
            mode: "replace" | "partial-replace";
            requiredFile?: string | undefined;
        };
        options?: {
            preserveExtensions: boolean;
            extensions: string[];
            validateExports: boolean;
            dryRun: boolean;
        } | undefined;
        exclude?: string[] | undefined;
    }[];
    globalOptions?: {
        followSymlinks: boolean;
        preserveExtensions: boolean;
        extensions: string[];
        validateExports: boolean;
        dryRun: boolean;
    } | undefined;
}, {
    version: string;
    barrels: {
        name: string;
        output: string;
        template: {
            export: string;
            name: string;
            mode?: "replace" | "partial-replace" | undefined;
            requiredFile?: string | undefined;
        };
        options?: {
            preserveExtensions?: boolean | undefined;
            extensions?: string[] | undefined;
            validateExports?: boolean | undefined;
            dryRun?: boolean | undefined;
        } | undefined;
        exclude?: string[] | undefined;
    }[];
    globalOptions?: {
        followSymlinks?: boolean | undefined;
        preserveExtensions?: boolean | undefined;
        extensions?: string[] | undefined;
        validateExports?: boolean | undefined;
        dryRun?: boolean | undefined;
    } | undefined;
}>;
export type SourceConfig = z.infer<typeof SourceConfigSchema>;
export type ExportConfig = z.infer<typeof ExportConfigSchema>;
export type TemplateConfig = z.infer<typeof TemplateConfigSchema>;
export interface PathVariable {
    name: string;
    value: string;
    casing: 'raw' | 'pascal' | 'camel' | 'kebab';
}
export type ProcessingOptions = z.infer<typeof ProcessingOptionsSchema>;
export type BarrelDefinition = z.infer<typeof BarrelDefinitionSchema>;
export type VariableBarrelDefinition = z.infer<typeof VariableBarrelDefinitionSchema>;
export declare function isVariableBarrelDefinition(def: BarrelDefinition): def is VariableBarrelDefinition;
export type BarrelConfig = z.infer<typeof BarrelConfigSchema>;
export type MarkerConfig = z.infer<typeof MarkerConfigSchema>;
export interface FileInfo {
    path: string;
    name: string;
    extension: string;
    relativePath: string;
    directory: string;
}
export interface ExportInfo {
    originalPath: string;
    exportPath: string;
    exportName: string;
    isDefault: boolean;
    isNamespace: boolean;
}
export type Result<T, E = Error> = {
    success: true;
    data: T;
    warnings?: string[];
} | {
    success: false;
    error: E;
    context?: Record<string, any>;
};
export interface GenerationResult {
    barrel: string;
    output: string;
    content: string;
    exports: ExportInfo[];
    warnings: string[];
    errors: string[];
}
//# sourceMappingURL=types.d.ts.map