import { ChangeLevel } from './entities/Entity.js';
import { IRule, IRuleConfig, Rule } from './rules/BaseRule.js';
export declare enum Exclusion {
    AuthorLogin = "authorLogin",
    CommitType = "commitType",
    CommitScope = "commitScope",
    CommitSubject = "commitSubject"
}
export declare enum GitServiceProvider {
    GitHub = "github",
    GitLab = "gitlab"
}
export interface IConfigOptions {
    branch?: string;
    bump?: boolean;
    output?: string;
    provider?: GitServiceProvider;
}
export interface IChangelogConfig {
    branch: string;
    changes: {
        [key in ChangeLevel]: string[];
    };
    output: {
        exclude: {
            [key in Exclusion]: string[];
        };
        filePath: string;
    };
    provider: GitServiceProvider;
    rules: {
        [key in Rule]: IRuleConfig;
    };
}
export declare class Config {
    #private;
    constructor(options?: IConfigOptions);
    get provider(): GitServiceProvider;
    get branch(): string;
    get filePath(): string;
    get exclusions(): [Exclusion, string[]][];
    get types(): [string, ChangeLevel][];
    get rules(): IRule[];
    get bump(): boolean;
    init(): Promise<void>;
    private getRules;
    private getTypes;
}
