import type { CustomHAR } from '../index.js';
import type { PostData } from '../har.js';
interface ParsedUrlQueryInput {
    [key: string]: string | number | boolean | string[] | number[] | boolean[] | undefined | null;
}
export type KeyValueAreStrings = {
    [key in string]: string;
};
type QueryObj = {
    [key: string]: string | number | boolean | string[] | number[] | boolean[] | undefined | null;
};
type UriObject = URL & {
    path: string;
    queryObj: QueryObj;
    query: QueryObj;
};
export interface SnippetRequest extends CustomHAR {
    queryObj?: QueryObj;
    headersObj: KeyValueAreStrings;
    cookiesObj?: KeyValueAreStrings;
    allHeaders: KeyValueAreStrings;
    postData?: PostData & {
        jsonObj?: GenericObject;
        paramsObj?: ParsedUrlQueryInput;
    };
    uriObj: UriObject;
    pathParameters: KeyValueAreStrings;
    serverVariables: Record<string, string>;
    fullUrl?: string;
}
export declare class HTTPSnippet {
    private readonly request;
    constructor(data: CustomHAR);
    prepare(request: SnippetRequest): SnippetRequest;
    convert(target: string, client: string, opts: PrivateOptions): string;
    _matchTarget<T>(target: string, client: Maybe<string>): T | false;
}
export interface PrivateOptions {
    variablesPrefix?: string;
    showBoilerplate?: boolean;
    withImports?: boolean;
    withComments?: boolean;
    withWrapper?: boolean;
    printBody?: boolean;
    level?: number;
}
export interface LanguageHandler<LanguageOptions> {
    (request: SnippetRequest, opts: LanguageOptions & PrivateOptions, { target, client }: {
        target: string;
        client: string;
    }): string;
}
export {};
