import * as prismic from "@prismicio/client";
import { Faker } from "../lib/createFaker";
import { Seed, WithoutFakerConfig } from "../types";
import { MockBooleanValueConfig } from "./boolean";
import { MockColorValueConfig } from "./color";
import { MockContentRelationshipValueConfig } from "./contentRelationship";
import { MockCustomTypeValueConfig } from "./customType";
import { MockDateValueConfig } from "./date";
import { MockDocumentValueConfig } from "./document";
import { MockEmbedValueConfig } from "./embed";
import { MockGeoPointValueConfig } from "./geoPoint";
import { MockGroupValueConfig } from "./group";
import { MockImageValue, MockImageValueConfig } from "./image";
import { MockIntegrationFieldValueConfig } from "./integration";
import { MockKeyTextValueConfig } from "./keyText";
import { MockLinkValueConfig } from "./link";
import { MockLinkToMediaValueConfig } from "./linkToMedia";
import { MockNumberValueConfig } from "./number";
import { MockRichTextValueConfig } from "./richText";
import { MockSelectValueConfig } from "./select";
import { MockSharedSliceValueConfig } from "./sharedSlice";
import { MockSharedSliceVariationValueConfig } from "./sharedSliceVariation";
import { MockSliceValueConfig } from "./slice";
import { MockSliceZoneValueConfig } from "./sliceZone";
import { MockTimestampValueConfig } from "./timestamp";
import { MockTitleValueConfig } from "./title";
import { MockUIDValueConfig } from "./uid";
import { MockTableValueConfig } from "./table";
export declare const createValueMockFactory: (config: ValueMockFactoryConfig) => ValueMockFactory;
type ValueMockFactoryConfig = {
    seed: Seed;
} | {
    faker: Faker;
};
export declare class ValueMockFactory {
    private faker;
    constructor(config: ValueMockFactoryConfig);
    get seed(): Seed;
    boolean<Model extends prismic.CustomTypeModelBooleanField>(config?: WithoutFakerConfig<MockBooleanValueConfig<Model>>): boolean;
    color<Model extends prismic.CustomTypeModelColorField = prismic.CustomTypeModelColorField, State extends prismic.FieldState = "filled">(config?: WithoutFakerConfig<MockColorValueConfig<Model, State>>): prismic.ColorField<State>;
    contentRelationship<Model extends prismic.CustomTypeModelContentRelationshipField = prismic.CustomTypeModelContentRelationshipField, State extends prismic.FieldState = "filled">(config?: WithoutFakerConfig<MockContentRelationshipValueConfig<Model, State>>): prismic.ContentRelationshipField<import("../types").IterableElement<NonNullable<Model["config"]>["customtypes"]>, string, never, State>;
    customType<Model extends prismic.CustomTypeModel = prismic.CustomTypeModel>(config?: WithoutFakerConfig<MockCustomTypeValueConfig<Model>>): import("../types").ModelValue<Model, prismic.FieldState>;
    date<Model extends prismic.CustomTypeModelDateField = prismic.CustomTypeModelDateField, State extends prismic.FieldState = "filled">(config?: WithoutFakerConfig<MockDateValueConfig<Model, State>>): prismic.DateField<State>;
    document<Model extends prismic.CustomTypeModel = prismic.CustomTypeModel>(config?: WithoutFakerConfig<MockDocumentValueConfig<Model>>): import("../types").ModelValue<Model, prismic.FieldState>;
    embed<Model extends prismic.CustomTypeModelEmbedField = prismic.CustomTypeModelEmbedField, Data extends prismic.AnyOEmbed = prismic.AnyOEmbed, State extends prismic.FieldState = "filled">(config?: WithoutFakerConfig<MockEmbedValueConfig<Model, Data, State>>): prismic.EmbedField<Data, State>;
    geoPoint<Model extends prismic.CustomTypeModelGeoPointField = prismic.CustomTypeModelGeoPointField, State extends prismic.FieldState = "filled">(config?: WithoutFakerConfig<MockGeoPointValueConfig<Model, State>>): prismic.GeoPointField<State>;
    group<Model extends prismic.CustomTypeModelGroupField = prismic.CustomTypeModelGroupField, State extends prismic.FieldState = "filled">(config?: WithoutFakerConfig<MockGroupValueConfig<Model, State>>): import("../types").ModelValue<Model, State>;
    image<Model extends prismic.CustomTypeModelImageField = prismic.CustomTypeModelImageField, State extends prismic.FieldState = "filled">(config?: WithoutFakerConfig<MockImageValueConfig<Model, State>>): MockImageValue<Model, State>;
    integration<Model extends prismic.CustomTypeModelIntegrationField = prismic.CustomTypeModelIntegrationField, Data extends Record<string, unknown> = Record<string, unknown>, State extends prismic.FieldState = "filled">(config?: WithoutFakerConfig<MockIntegrationFieldValueConfig<Model, Data, State>>): prismic.IntegrationField<Data, State>;
    keyText<Model extends prismic.CustomTypeModelKeyTextField = prismic.CustomTypeModelKeyTextField, State extends prismic.FieldState = "filled">(config?: WithoutFakerConfig<MockKeyTextValueConfig<Model, State>>): prismic.KeyTextField<State>;
    link<LinkType extends (typeof prismic.LinkType)[keyof typeof prismic.LinkType] = (typeof prismic.LinkType)[keyof typeof prismic.LinkType], Model extends prismic.CustomTypeModelLinkField = prismic.CustomTypeModelLinkField, State extends prismic.FieldState = "filled">(config?: WithoutFakerConfig<MockLinkValueConfig<LinkType, Model, State>>): State extends "empty" ? prismic.EmptyLinkField<LinkType> : LinkType extends "Web" ? prismic.FilledLinkToWebField : LinkType extends "Media" ? prismic.FilledLinkToMediaField : LinkType extends "Document" ? prismic.FilledContentRelationshipField<string, string, unknown> : never;
    linkToMedia<Model extends prismic.CustomTypeModelLinkToMediaField = prismic.CustomTypeModelLinkToMediaField, State extends prismic.FieldState = "filled">(config?: WithoutFakerConfig<MockLinkToMediaValueConfig<Model, State>>): prismic.LinkToMediaField<State, string>;
    number<Model extends prismic.CustomTypeModelNumberField = prismic.CustomTypeModelNumberField, State extends prismic.FieldState = "filled">(config?: WithoutFakerConfig<MockNumberValueConfig<Model, State>>): prismic.NumberField<State>;
    richText<Model extends prismic.CustomTypeModelRichTextField = prismic.CustomTypeModelRichTextField>(config?: WithoutFakerConfig<MockRichTextValueConfig<Model>>): [] | [prismic.RTNode, ...prismic.RTNode[]];
    select<Model extends prismic.CustomTypeModelSelectField = prismic.CustomTypeModelSelectField, State extends prismic.FieldState = "filled">(config?: WithoutFakerConfig<MockSelectValueConfig<Model, State>>): prismic.SelectField<NonNullable<NonNullable<Model["config"]>["options"]>[number], State>;
    sharedSlice<Model extends prismic.SharedSliceModel = prismic.SharedSliceModel>(config?: WithoutFakerConfig<MockSharedSliceValueConfig<Model>>): import("../types").ModelValue<Model, prismic.FieldState>;
    sharedSliceVariation<Model extends prismic.SharedSliceModelVariation = prismic.SharedSliceModelVariation>(config?: WithoutFakerConfig<MockSharedSliceVariationValueConfig<Model>>): import("../types").ModelValue<Model, prismic.FieldState>;
    slice<Model extends prismic.CustomTypeModelSlice = prismic.CustomTypeModelSlice>(config?: WithoutFakerConfig<MockSliceValueConfig<Model>>): import("../types").ModelValue<Model, prismic.FieldState>;
    sliceZone<Model extends prismic.CustomTypeModelSliceZoneField = prismic.CustomTypeModelSliceZoneField, State extends prismic.FieldState = "filled">(config?: WithoutFakerConfig<MockSliceZoneValueConfig<Model, State>>): import("../types").ModelValue<Model, State>;
    table<Model extends prismic.CustomTypeModelTableField = prismic.CustomTypeModelTableField>(config?: WithoutFakerConfig<MockTableValueConfig<Model>>): {
        head?: prismic.TableFieldHead | undefined;
        body: prismic.TableFieldBody;
    } | null;
    timestamp<Model extends prismic.CustomTypeModelTimestampField = prismic.CustomTypeModelTimestampField, State extends prismic.FieldState = "filled">(config?: WithoutFakerConfig<MockTimestampValueConfig<Model, State>>): prismic.TimestampField<State>;
    title<Model extends prismic.CustomTypeModelTitleField = prismic.CustomTypeModelTitleField, State extends prismic.FieldState = "filled">(config?: WithoutFakerConfig<MockTitleValueConfig<Model, State>>): prismic.TitleField<State>;
    uid<Model extends prismic.CustomTypeModelUIDField = prismic.CustomTypeModelUIDField>(config?: WithoutFakerConfig<MockUIDValueConfig<Model>>): string;
}
export {};
