import { Faker } from "../lib/createFaker.js";
import { Seed, WithoutFakerConfig } from "../types.js";
import { MockRestApiRepositoryConfig } from "./repository.js";
import { MockRestApiRefConfig, ref } from "./ref.js";
import { MockRestApiQueryConfig } from "./query.js";
import { MockRestApiTagsConfig } from "./tags.js";
import * as prismic from "@prismicio/client";

//#region src/api/createAPIMockFactory.d.ts
declare const createAPIMockFactory: (...args: ConstructorParameters<typeof APIMockFactory>) => APIMockFactory;
type APIMockFactoryConfig = {
  seed: Seed;
} | {
  faker: Faker;
};
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>>): ReturnType<typeof ref<IsScheduled>>;
  repository(config?: WithoutFakerConfig<MockRestApiRepositoryConfig>): prismic.Repository;
  tags(config?: WithoutFakerConfig<MockRestApiTagsConfig>): prismic.Tags;
}
//#endregion
export { APIMockFactory, createAPIMockFactory };
//# sourceMappingURL=createAPIMockFactory.d.ts.map