import type { getDirective } from "@graphql-tools/utils";
import { Plugin } from "./Plugin";
import { type IntrospectionKind } from "../utilities";
export declare namespace withMetadata {
    type Fallback = (value: Parameters<typeof getDirective>[1], name: string) => unknown;
    type Fields = Record<IntrospectionKind | "default", Record<string, string>>;
    type Names = Partial<Record<IntrospectionKind, string>>;
    type Fallbacks = Partial<Record<IntrospectionKind, Fallback>>;
    interface Options {
        fields: Fields;
        names?: Names;
        fallbacks?: Fallbacks;
    }
}
export declare function withMetadata(options: withMetadata.Options): Plugin<any>[];
