import { DiffInterceptor } from './diff.cjs';
export type Endpoint = string | {
    url: string;
    method?: 'get' | 'GET' | 'post' | 'POST';
    headers?: {
        [name: string]: string;
    };
};
export interface SchemaPointer {
    ref: string;
    path: string;
}
export interface LegacyConfig {
    diff?: boolean | Diff;
    notifications?: Notifications;
    endpoint?: Endpoint;
    schema: SchemaPointer;
}
export interface Notifications {
    slack?: string;
    discord?: string;
    webhook?: string;
}
interface Diff {
    /** @deprecated */
    experimental_merge?: boolean;
    annotations?: boolean;
    failOnBreaking?: boolean;
    approveLabel?: string;
    intercept?: DiffInterceptor;
    summaryLimit?: number;
}
interface Environment {
    branch: string;
    endpoint?: Endpoint;
    diff?: Diff | boolean;
    notifications?: Notifications | boolean;
}
export interface NormalizedEnvironment {
    name: string;
    schema: string;
    branch: string;
    endpoint?: Endpoint;
    diff: Diff | false;
    notifications: Notifications | false;
}
interface SingleEnvironmentConfig extends Environment {
    schema: string;
    others?: {
        diff?: Diff | boolean;
        notifications?: Notifications | boolean;
    };
}
interface MultipleEnvironmentConfig {
    schema: string;
    diff?: Diff | boolean;
    notifications?: Notifications | boolean;
    env: {
        [env: string]: Environment;
    };
    others?: {
        diff?: Diff | boolean;
        notifications?: Notifications | boolean;
    };
}
export type Config = SingleEnvironmentConfig | MultipleEnvironmentConfig | LegacyConfig;
export type NormalizedConfig = {
    [env: string]: NormalizedEnvironment;
};
export type NormalizedLegacyConfig = {
    __default: NormalizedEnvironment;
};
export declare const defaultConfigName = "__default";
export declare const defaultFallbackBranch = "*";
export declare function createConfig(rawConfig: Config, setConfigKind: (kind: 'legacy' | 'single' | 'multiple') => void, branches?: string[], fallbackBranch?: string): NormalizedEnvironment;
export {};
