import { SchemaBuilder } from "@serafin/schema-builder";
import { IdentityInterface } from "./IdentityInterface";
export interface SchemaBuildersInterface<M extends IdentityInterface = IdentityInterface, CV = any, CO = any, RQ = any, PQ = any, PV = any, DQ = any, CM = any, RM = any, PM = any, DM = any, CTX = any> {
    model: SchemaBuilder<M>;
    createValues: SchemaBuilder<CV>;
    createOptions: SchemaBuilder<CO>;
    readQuery: SchemaBuilder<RQ>;
    patchQuery: SchemaBuilder<PQ>;
    patchValues: SchemaBuilder<PV>;
    deleteQuery: SchemaBuilder<DQ>;
    createMeta: SchemaBuilder<CM>;
    readMeta: SchemaBuilder<RM>;
    patchMeta: SchemaBuilder<PM>;
    deleteMeta: SchemaBuilder<DM>;
    context: SchemaBuilder<CTX>;
}
export declare const schemaBuildersInterfaceKeys: readonly ["model", "createValues", "createOptions", "readQuery", "patchQuery", "patchValues", "deleteQuery", "createMeta", "readMeta", "patchMeta", "deleteMeta", "context"];
export declare function defaultSchemaBuilders<M extends IdentityInterface>(modelSchemaBuilder: SchemaBuilder<M>): {
    model: SchemaBuilder<M>;
    createValues: SchemaBuilder<{ [P in keyof import("@serafin/schema-builder").PartialProperties<M, "id">]: import("@serafin/schema-builder").PartialProperties<M, "id">[P]; }>;
    createOptions: SchemaBuilder<{}>;
    readQuery: SchemaBuilder<{ [P_2 in keyof import("@serafin/schema-builder").TransformPropertiesToArray<M, keyof M>]: import("@serafin/schema-builder").TransformPropertiesToArray<M, keyof M>[P_2]; } extends infer T ? { [P_1 in keyof T]?: { [P_2 in keyof import("@serafin/schema-builder").TransformPropertiesToArray<M, keyof M>]: import("@serafin/schema-builder").TransformPropertiesToArray<M, keyof M>[P_2]; }[P_1] | undefined; } : never>;
    patchQuery: SchemaBuilder<{
        id: M["id"] extends any[] ? M["id"] : M["id"] | M["id"][];
    }>;
    patchValues: SchemaBuilder<import("@serafin/schema-builder").DeepPartial<import("@serafin/schema-builder").Nullable<{ [P_5 in keyof Omit<M, "id">]: Omit<M, "id">[P_5]; }> extends infer T_3 ? { [P_4 in keyof T_3]: import("@serafin/schema-builder").Nullable<{ [P_5 in keyof Omit<M, "id">]: Omit<M, "id">[P_5]; }>[P_4]; } : never> extends infer T_1 ? { [P_3 in keyof T_1]: import("@serafin/schema-builder").DeepPartial<import("@serafin/schema-builder").Nullable<{ [P_5 in keyof Omit<M, "id">]: Omit<M, "id">[P_5]; }> extends infer T_2 ? { [P_4 in keyof T_2]: import("@serafin/schema-builder").Nullable<{ [P_5 in keyof Omit<M, "id">]: Omit<M, "id">[P_5]; }>[P_4]; } : never>[P_3]; } : never>;
    deleteQuery: SchemaBuilder<{
        id: M["id"] extends any[] ? M["id"] : M["id"] | M["id"][];
    }>;
    readMeta: SchemaBuilder<{}>;
    createMeta: SchemaBuilder<{}>;
    patchMeta: SchemaBuilder<{}>;
    deleteMeta: SchemaBuilder<{}>;
    context: SchemaBuilder<{}>;
};
