export interface IEsiVariable {
    getValue(): string | undefined;
    getSubValue(key: string): string | undefined;
}
export declare function parseAsNumber(val: string | undefined): number | undefined;
export declare class EsiStringVariable implements IEsiVariable {
    value: string;
    constructor(value: string);
    getSubValue(_key: string): string | undefined;
    getValue(): string | undefined;
}
type EsiListDefFunc = (value: string) => {
    [k: string]: boolean;
};
export declare class EsiListVariable implements IEsiVariable {
    value: string;
    fn: EsiListDefFunc;
    map?: {
        [k: string]: boolean;
    };
    constructor(value: string, fn: EsiListDefFunc);
    getSubValue(key: string): string | undefined;
    getValue(): string | undefined;
}
type EsiDictionaryDefFunc = (value: string) => {
    [k: string]: string | undefined;
};
export declare class EsiDictionaryVariable implements IEsiVariable {
    value: string;
    fn: EsiDictionaryDefFunc;
    map?: {
        [k: string]: string | undefined;
    };
    constructor(value: string, fn: EsiDictionaryDefFunc);
    getSubValue(key: string): string | undefined;
    getValue(): string | undefined;
}
export declare class EsiAcceptLanguageVariable extends EsiListVariable {
    constructor(value: string);
}
export declare class EsiCookieVariable extends EsiDictionaryVariable {
    constructor(value: string);
}
export declare class EsiQueryStringVariable extends EsiDictionaryVariable {
    constructor(value: string);
}
export declare class EsiUserAgentVariable extends EsiDictionaryVariable {
    constructor(value: string);
}
export interface IEsiVariables {
    getValue(name: string, subKey: string | null): string | undefined;
}
export declare class EsiVariables implements IEsiVariables {
    values: {
        [name: string]: IEsiVariable | undefined;
    };
    constructor(url?: URL, headers?: Headers);
    getValue(name: string, subKey?: string | null): string | undefined;
}
export declare function applyEsiVariables(input: string | undefined, vars?: IEsiVariables): string | undefined;
export declare function evaluateEsiVariable(input: string | undefined, vars?: IEsiVariables): string | undefined;
export {};
//# sourceMappingURL=EsiVariables.d.ts.map