export declare class EnvConfig {
    protected config: FlagpoleConfig;
    name: string;
    defaultDomain: string;
    constructor(config: FlagpoleConfig, opts: any);
}
export declare class SuiteConfig {
    protected config: FlagpoleConfig;
    id: string;
    name: string;
    tags: string[];
    constructor(config: FlagpoleConfig, opts: any);
    getPath(): string;
    clearTags(): void;
    addTag(tag: string): void;
}
export declare class ProjectConfig {
    protected config: FlagpoleConfig;
    id: string;
    name: string;
    path: string;
    constructor(config: FlagpoleConfig, opts: any);
    hasId(): boolean;
    toJson(): {
        id: string;
        name: string;
        path: string;
    };
}
export declare class FlagpoleConfig {
    protected configPath: string;
    protected _onSave: Function[];
    project: ProjectConfig;
    suites: {
        [key: string]: SuiteConfig;
    };
    environments: {
        [key: string]: EnvConfig;
    };
    constructor(configData?: any);
    getConfigFolder(): string;
    getConfigPath(): string;
    getTestsFolder(): string;
    addEnvironment(name: string, opts?: {}): void;
    addSuite(name: string, opts?: {}): void;
    removeEnvironment(name: string): void;
    removeSuite(name: string): void;
    getEnvironments(): EnvConfig[];
    getEnvironmentNames(): string[];
    getSuites(): SuiteConfig[];
    getSuiteNames(): string[];
    isValid(): boolean;
    toString(): string;
    onSave(callback: Function): void;
    save(): Promise<void>;
}
