import * as prismic from "@prismicio/client";
import { MockModelConfig } from "../types";
export type MockCustomTypeModelConfig<Definition extends prismic.CustomTypeModelTab | prismic.CustomTypeModelDefinition = prismic.CustomTypeModelTab | prismic.CustomTypeModelDefinition> = {
    id?: string;
    label?: string;
    status?: boolean;
    repeatable?: boolean;
    format?: prismic.CustomTypeModel["format"];
} & ({
    fields?: Definition;
    tabs?: never;
} | {
    tabs?: Definition;
    fields?: never;
}) & MockModelConfig;
type MockCustomTypeModel<Definition extends prismic.CustomTypeModelTab | prismic.CustomTypeModelDefinition> = (Definition extends prismic.CustomTypeModelTab ? prismic.CustomTypeModel<string, Record<"Main", Definition>> : Definition extends prismic.CustomTypeModelDefinition ? prismic.CustomTypeModel<string, Definition> : never) & {
    label: NonNullable<prismic.CustomTypeModel["label"]>;
};
export declare const customType: <Definition extends Record<string, prismic.CustomTypeModelField> | prismic.CustomTypeModelDefinition>(config: MockCustomTypeModelConfig<Definition>) => MockCustomTypeModel<Definition>;
export {};
