/**
 * Release configuration loader and validator.
 *
 * Loads release configuration from .cleo/config.json, providing defaults
 * for versioning scheme, changelog format, artifact types, and gates.
 *
 * @task T4454
 * @epic T4454
 */
/** Release configuration shape. */
export interface ReleaseConfig {
    versioningScheme: string;
    tagPrefix: string;
    changelogFormat: string;
    changelogFile: string;
    artifactType: string;
    gates: ReleaseGate[];
    versionBump: {
        files: Array<{
            file: string;
            strategy: string;
            field?: string;
        }>;
    };
    security: {
        enableProvenance: boolean;
        slsaLevel: number;
        requireSignedCommits: boolean;
    };
    gitflow?: GitFlowConfig;
    channels?: ChannelConfig;
    push?: {
        mode?: PushMode;
    };
}
/** Release gate definition. */
export interface ReleaseGate {
    name: string;
    type: 'tests' | 'lint' | 'audit' | 'custom';
    command: string;
    required: boolean;
}
/** Load release configuration with defaults. */
export declare function loadReleaseConfig(cwd?: string): ReleaseConfig;
/** Validate release configuration. */
export declare function validateReleaseConfig(config: ReleaseConfig): {
    valid: boolean;
    errors: string[];
    warnings: string[];
};
/** Get artifact type from config. */
export declare function getArtifactType(cwd?: string): string;
/** Get release gates from config. */
export declare function getReleaseGates(cwd?: string): ReleaseGate[];
/** Get changelog configuration. */
export declare function getChangelogConfig(cwd?: string): {
    format: string;
    file: string;
};
/** GitFlow branch configuration. */
export interface GitFlowConfig {
    enabled: boolean;
    branches: {
        main: string;
        develop: string;
        featurePrefix: string;
        hotfixPrefix: string;
        releasePrefix: string;
    };
}
/** Channel-to-branch mapping for npm dist-tag resolution. */
export interface ChannelConfig {
    main: string;
    develop: string;
    feature: string;
    custom?: Record<string, string>;
}
/** Push mode: direct push vs PR creation vs auto-detect. */
export type PushMode = 'direct' | 'pr' | 'auto';
/** Return the default GitFlow branch configuration. */
export declare function getDefaultGitFlowConfig(): GitFlowConfig;
/** Merge caller-supplied GitFlow config with defaults. */
export declare function getGitFlowConfig(config: ReleaseConfig): GitFlowConfig;
/** Return the default channel configuration. */
export declare function getDefaultChannelConfig(): ChannelConfig;
/** Merge caller-supplied channel config with defaults. */
export declare function getChannelConfig(config: ReleaseConfig): ChannelConfig;
/** Return the configured push mode, defaulting to 'auto'. */
export declare function getPushMode(config: ReleaseConfig): PushMode;
//# sourceMappingURL=release-config.d.ts.map