import * as prismic from "@prismicio/client";
import type { NodePluginArgs } from "gatsby";
import type { FieldModelValueType, PrismicDocumentForModel } from "../types";
import type { PluginOptions } from "../types";
type NormalizeDocumentFieldArgs<Model extends prismic.CustomTypeModelField = prismic.CustomTypeModelField> = {
    model: Model;
    value: FieldModelValueType<Model>;
    path: string[];
    gatsbyNodeArgs: NodePluginArgs;
    pluginOptions: PluginOptions;
    sharedSliceModels: prismic.SharedSliceModel[];
};
type NormalizeDocumentFieldReturnType<Model extends prismic.CustomTypeModelField = prismic.CustomTypeModelField> = Model extends prismic.CustomTypeModelGroupField ? prismic.GroupField<{
    [P in keyof NonNullable<NonNullable<Model["config"]>["fields"]>]: NormalizeDocumentFieldReturnType<NonNullable<NonNullable<Model["config"]>["fields"]>[P]>;
}> : Model extends prismic.CustomTypeModelLinkField ? FieldModelValueType<Model> & {
    localFile: string | null;
} : Model extends prismic.CustomTypeModelEmbedField ? string | null : Model extends prismic.CustomTypeModelImageField<infer ThumbnailNames> ? FieldModelValueType<Model> & {
    localFile: string | null;
} & {
    [ThumbnailName in keyof ThumbnailNames]: prismic.ImageFieldImage & {
        localFile: string | null;
    };
} : Model extends prismic.CustomTypeModelIntegrationField ? string | null : FieldModelValueType<Model>;
type NormalizeDocumentArgs<Model extends prismic.CustomTypeModel> = Omit<NormalizeDocumentFieldArgs, "model" | "value" | "path"> & {
    document: PrismicDocumentForModel<Model>;
    model: Model;
};
export declare const normalizeDocument: <Model extends prismic.CustomTypeModel<string, prismic.CustomTypeModelDefinition<string>>>(args: NormalizeDocumentArgs<Model>) => Promise<Omit<PrismicDocumentForModel<Model>, "data"> & {
    data: Record<string, NormalizeDocumentFieldReturnType>;
}>;
export {};
