export type IReturningGenerator = (tableName: string) => string;
export interface IGenerateQueryDataOptions {
    tableNamePostfix?: string;
    tableName: string;
    operation?: 'query' | 'subscription';
    queryName?: string;
    returning?: (string | IReturningGenerator);
    variables?: any;
}
export interface IGenerateQueryDataBuilder {
    (alias: string, index: number): IGenerateQueryDataResult;
}
export interface IGenerateQueryFieldTypes {
    [field: string]: string;
}
export interface IGenerateQueryDataResult extends IGenerateQueryDataOptions {
    resultReturning: string;
    fields: string[];
    defs: string[];
    args: string[];
    alias: string;
    index: number;
    resultAlias: string;
    resultVariables: any;
}
export declare const generateQueryData: ({ tableName, tableNamePostfix, operation, queryName, returning, variables: _variables, }: IGenerateQueryDataOptions) => IGenerateQueryDataBuilder;
export interface IGenerateQueryOptions {
    queries: any[];
    name: string;
    operation?: 'query' | 'subscription';
    alias?: string;
}
export interface IGenerateQueryResult {
    query: any;
    queryString: any;
    variables: any;
}
export declare const generateQuery: ({ queries, operation, name, alias, }: IGenerateQueryOptions) => IGenerateQueryResult;
