import { DirectiveLocationEnum, GraphQLArgument, GraphQLDirective } from 'graphql';
import { Change, ChangeType, CriticalityLevel, DirectiveAddedChange, DirectiveArgumentAddedChange, DirectiveArgumentDefaultValueChangedChange, DirectiveArgumentDescriptionChangedChange, DirectiveArgumentRemovedChange, DirectiveArgumentTypeChangedChange, DirectiveDescriptionChangedChange, DirectiveLocationAddedChange, DirectiveLocationRemovedChange, DirectiveRemovedChange } from './change.cjs';
export declare function directiveRemovedFromMeta(args: DirectiveRemovedChange): {
    readonly criticality: {
        readonly level: CriticalityLevel.Breaking;
        readonly reason: "A directive could be in use of a client application. Removing it could break the client application.";
    };
    readonly type: "DIRECTIVE_REMOVED";
    readonly message: string;
    readonly path: `@${string}`;
    readonly meta: {
        removedDirectiveName: string;
    };
};
export declare function directiveRemoved(directive: GraphQLDirective): Change<typeof ChangeType.DirectiveRemoved>;
export declare function directiveAddedFromMeta(args: DirectiveAddedChange): {
    readonly criticality: {
        readonly level: CriticalityLevel.NonBreaking;
    };
    readonly type: "DIRECTIVE_ADDED";
    readonly message: string;
    readonly path: `@${string}`;
    readonly meta: {
        addedDirectiveName: string;
    };
};
export declare function directiveAdded(directive: GraphQLDirective): Change<typeof ChangeType.DirectiveAdded>;
export declare function directiveDescriptionChangedFromMeta(args: DirectiveDescriptionChangedChange): {
    readonly criticality: {
        readonly level: CriticalityLevel.NonBreaking;
    };
    readonly type: "DIRECTIVE_DESCRIPTION_CHANGED";
    readonly message: string;
    readonly path: `@${string}`;
    readonly meta: {
        directiveName: string;
        oldDirectiveDescription: string | null;
        newDirectiveDescription: string | null;
    };
};
export declare function directiveDescriptionChanged(oldDirective: GraphQLDirective, newDirective: GraphQLDirective): Change<typeof ChangeType.DirectiveDescriptionChanged>;
export declare function directiveLocationAddedFromMeta(args: DirectiveLocationAddedChange): {
    readonly criticality: {
        readonly level: CriticalityLevel.NonBreaking;
    };
    readonly type: "DIRECTIVE_LOCATION_ADDED";
    readonly message: string;
    readonly path: `@${string}`;
    readonly meta: {
        directiveName: string;
        addedDirectiveLocation: string;
    };
};
export declare function directiveLocationAdded(directive: GraphQLDirective, location: DirectiveLocationEnum): Change<typeof ChangeType.DirectiveLocationAdded>;
export declare function directiveLocationRemovedFromMeta(args: DirectiveLocationRemovedChange): {
    readonly criticality: {
        readonly level: CriticalityLevel.Breaking;
        readonly reason: "A directive could be in use of a client application. Removing it could break the client application.";
    };
    readonly type: "DIRECTIVE_LOCATION_REMOVED";
    readonly message: string;
    readonly path: `@${string}`;
    readonly meta: {
        directiveName: string;
        removedDirectiveLocation: string;
    };
};
export declare function directiveLocationRemoved(directive: GraphQLDirective, location: DirectiveLocationEnum): Change<typeof ChangeType.DirectiveLocationRemoved>;
export declare function directiveArgumentAddedFromMeta(args: DirectiveArgumentAddedChange): {
    readonly criticality: {
        level: CriticalityLevel;
        reason: string;
    };
    readonly type: "DIRECTIVE_ARGUMENT_ADDED";
    readonly message: `Argument '${string}' was added to directive '${string}'`;
    readonly path: `@${string}`;
    readonly meta: {
        directiveName: string;
        addedDirectiveArgumentName: string;
        addedDirectiveArgumentTypeIsNonNull: boolean;
    };
};
export declare function directiveArgumentAdded(directive: GraphQLDirective, arg: GraphQLArgument): Change<typeof ChangeType.DirectiveArgumentAdded>;
export declare function directiveArgumentRemovedFromMeta(args: DirectiveArgumentRemovedChange): {
    readonly criticality: {
        readonly level: CriticalityLevel.Breaking;
        readonly reason: "A directive argument could be in use of a client application. Removing the argument can break client applications.";
    };
    readonly type: "DIRECTIVE_ARGUMENT_REMOVED";
    readonly message: string;
    readonly path: `@${string}.${string}`;
    readonly meta: {
        directiveName: string;
        removedDirectiveArgumentName: string;
    };
};
export declare function directiveArgumentRemoved(directive: GraphQLDirective, arg: GraphQLArgument): Change<typeof ChangeType.DirectiveArgumentRemoved>;
export declare function directiveArgumentDescriptionChangedFromMeta(args: DirectiveArgumentDescriptionChangedChange): {
    readonly criticality: {
        readonly level: CriticalityLevel.NonBreaking;
    };
    readonly type: "DIRECTIVE_ARGUMENT_DESCRIPTION_CHANGED";
    readonly message: string;
    readonly path: `@${string}.${string}`;
    readonly meta: {
        directiveName: string;
        directiveArgumentName: string;
        oldDirectiveArgumentDescription: string | null;
        newDirectiveArgumentDescription: string | null;
    };
};
export declare function directiveArgumentDescriptionChanged(directive: GraphQLDirective, oldArg: GraphQLArgument, newArg: GraphQLArgument): Change<typeof ChangeType.DirectiveArgumentDescriptionChanged>;
export declare function directiveArgumentDefaultValueChangedFromMeta(args: DirectiveArgumentDefaultValueChangedChange): {
    readonly criticality: {
        readonly level: CriticalityLevel.Dangerous;
        readonly reason: "Changing the default value for an argument may change the runtime behaviour of a field if it was never provided.";
    };
    readonly type: "DIRECTIVE_ARGUMENT_DEFAULT_VALUE_CHANGED";
    readonly message: string;
    readonly path: `@${string}.${string}`;
    readonly meta: {
        directiveName: string;
        directiveArgumentName: string;
        oldDirectiveArgumentDefaultValue?: string | undefined;
        newDirectiveArgumentDefaultValue?: string | undefined;
    };
};
export declare function directiveArgumentDefaultValueChanged(directive: GraphQLDirective, oldArg: GraphQLArgument, newArg: GraphQLArgument): Change<typeof ChangeType.DirectiveArgumentDefaultValueChanged>;
export declare function directiveArgumentTypeChangedFromMeta(args: DirectiveArgumentTypeChangedChange): {
    readonly criticality: {
        level: CriticalityLevel;
        reason: string;
    } | {
        level: CriticalityLevel;
        reason?: undefined;
    };
    readonly type: "DIRECTIVE_ARGUMENT_TYPE_CHANGED";
    readonly message: string;
    readonly path: `@${string}.${string}`;
    readonly meta: {
        directiveName: string;
        directiveArgumentName: string;
        oldDirectiveArgumentType: string;
        newDirectiveArgumentType: string;
        isSafeDirectiveArgumentTypeChange: boolean;
    };
};
export declare function directiveArgumentTypeChanged(directive: GraphQLDirective, oldArg: GraphQLArgument, newArg: GraphQLArgument): Change<typeof ChangeType.DirectiveArgumentTypeChanged>;
