import { FlagpoleConfig, EnvConfig } from "./flagpoleconfig";
import { JsonSchema } from "./interfaces";
export declare enum FlagpoleOutput {
    console = "console",
    text = "text",
    json = "json",
    html = "html",
    csv = "csv",
    tsv = "tsv",
    psv = "psv",
    browser = "browser"
}
export interface iFlagpoleOptions {
    configFilePath: string;
    outputFormat?: FlagpoleOutput;
    baseDomain?: string;
    environmentName?: string;
    exitOnDone?: boolean;
    isChildProcess?: boolean;
    volume?: number;
    automaticallyPrintToConsole?: boolean;
    headless?: boolean;
}
export declare class FlagpoleExecution {
    private static _globalSingleton;
    static get global(): FlagpoleExecution;
    static set global(value: FlagpoleExecution);
    static createWithArgs(args: string[]): FlagpoleExecution;
    static create(opts: iFlagpoleOptions): FlagpoleExecution;
    private _opts;
    private _config;
    get config(): FlagpoleConfig;
    get automaticallyPrintToConsole(): boolean;
    get exitOnDone(): boolean;
    get isChildProcess(): boolean;
    get volume(): number;
    set outputFormat(value: FlagpoleOutput);
    get outputFormat(): FlagpoleOutput;
    get environment(): EnvConfig | undefined;
    get baseDomain(): string | undefined;
    get headless(): boolean | undefined;
    set headless(value: boolean | undefined);
    get isQuietMode(): boolean;
    get shouldOutputToConsole(): boolean;
    get shouldWriteHtml(): boolean;
    get isConsoleOutput(): boolean;
    get isTextOutput(): boolean;
    get isCsvOutput(): boolean;
    get isPsvOutput(): boolean;
    get isDelimitedOutput(): boolean;
    get isTsvOutput(): boolean;
    get isJsonOutput(): boolean;
    get isBrowserOutput(): boolean;
    get isHtmlOutput(): boolean;
    private constructor();
    private getCachePath;
    setCache(key: string, data: any): this;
    getCache(key: string): any;
    removeCache(key: string): this;
    clearCache(): void;
    generateJsonSchema(json: any, schemaName?: string): JsonSchema;
    getOptionsArray(): string[];
    getOptionsString(): string;
    clone(opts?: any): FlagpoleExecution;
}
