import * as prismic from "@prismicio/client";
import { Faker } from "../lib/createFaker";
import { Seed, WithoutFakerConfig } from "../types";
import { MockRestApiQueryConfig } from "./query";
import { MockRestApiRefConfig } from "./ref";
import { MockRestApiRepositoryConfig } from "./repository";
import { MockRestApiTagsConfig } from "./tags";
export declare const createAPIMockFactory: (config: APIMockFactoryConfig) => APIMockFactory;
type APIMockFactoryConfig = {
    seed: Seed;
} | {
    faker: Faker;
};
export declare class APIMockFactory {
    private faker;
    constructor(config: APIMockFactoryConfig);
    get seed(): Seed;
    query<Document extends prismic.PrismicDocument = prismic.PrismicDocument>(config?: WithoutFakerConfig<MockRestApiQueryConfig<Document>>): prismic.Query<Document>;
    ref<IsScheduled extends boolean = false>(config?: WithoutFakerConfig<MockRestApiRefConfig<IsScheduled>>): import("./ref").MockRestApiRefValue<IsScheduled>;
    repository(config?: WithoutFakerConfig<MockRestApiRepositoryConfig>): prismic.Repository;
    tags(config?: WithoutFakerConfig<MockRestApiTagsConfig>): prismic.Tags;
}
export {};
