import { GRAPHQL_AUTH_MODE } from "@aws-amplify/api";
import { Model, tipoApiModel } from "../merm-schema/merm-types";
import { InjectionKey } from "vue";
interface OpcoesApi {
    nome_entidade: string;
    authMode?: GRAPHQL_AUTH_MODE | null;
    queries?: unknown;
    mutations?: unknown;
    tipoApi: tipoApiModel;
}
export declare class ApiClass<T> {
    opcoesApi: OpcoesApi;
    customGraphqlQuerys?: QueryBuilder | undefined;
    symbol: InjectionKey<{
        [P in keyof ApiClass<T>]: ApiClass<T>[P];
    }>;
    constructor(opcoesApi: OpcoesApi, customGraphqlQuerys?: QueryBuilder | undefined);
    lista(filter?: Object): Promise<void | T[]>;
    cria(...vars: Parameters<typeof this.graphql_cria>): Promise<T>;
    atualiza(...vars: Parameters<typeof this.graphql_atualiza>): Promise<void | T>;
    deleta(...vars: Parameters<typeof this.graphql_delete>): Promise<void | T>;
    pega(id: string, graphql_query?: string): Promise<T>;
    private graphql_pega;
    private graphql_delete;
    private cognito_delete;
    private graphql_list;
    private cognito_list;
    private graphql_cria;
    private cognito_cria;
    private thirdy;
    private graphql_atualiza;
    private cognito_edita;
}
export declare class QueryBuilder {
    model_name: string;
    models: Model[];
    model: Model;
    DEEP: number;
    constructor(model_name: string, models: Model[]);
    _getModel(model_name: string): Model;
    build_query(model: Model, metodo: 'get' | 'update' | 'create' | 'delete' | 'list', variables: object): {
        variables: any;
        query: string;
    };
    get getModelQuery(): {
        variables: any;
        query: string;
    };
    get createModelQuery(): {
        variables: any;
        query: string;
    };
    get updateModelQuery(): {
        variables: any;
        query: string;
    };
    get deleteModelQuery(): {
        variables: any;
        query: string;
    };
    get listModelQuery(): {
        variables: any;
        query: string;
    };
}
export {};
