import { ArgumentNode, DirectiveNode, NameNode, ValueNode } from 'graphql';
import type { TransformParameters } from '@aws-amplify/graphql-transformer-interfaces';
export type GetArgumentsOptions = {
    deepMergeArguments?: boolean;
};
export declare class ArgumentWrapper {
    readonly name: NameNode;
    readonly value: ValueNode;
    constructor(argument: ArgumentNode);
    serialize: () => ArgumentNode;
}
export declare class DirectiveWrapper {
    private arguments;
    private name;
    private location?;
    constructor(node: DirectiveNode);
    serialize: () => DirectiveNode;
    getArguments: <T>(defaultValue: Required<T>, options?: GetArgumentsOptions) => Required<T>;
}
export declare const generateGetArgumentsInput: ({ shouldDeepMergeDirectiveConfigDefaults }: TransformParameters) => GetArgumentsOptions;
export declare const needsDeepMerge: <T>(defaultValue: Required<T>, argValues: {
    [x: string]: any;
}) => boolean;
//# sourceMappingURL=directive-wrapper.d.ts.map