import type { GraphQLParams, Plugin as YogaPlugin } from 'graphql-yoga';
import type { OnSubgraphExecutePayload } from '@graphql-mesh/fusion-runtime';
import type { MeshServePlugin } from '@graphql-mesh/serve-runtime';
import type { ExecutionRequest } from '@graphql-tools/utils';
export type HMACUpstreamSignatureOptions = {
    secret: string;
    shouldSign?: (input: Pick<OnSubgraphExecutePayload<{}>, 'subgraph' | 'subgraphName' | 'executionRequest'>) => boolean;
    extensionName?: string;
    serializeExecutionRequest?: (executionRequest: ExecutionRequest) => string;
};
export declare const defaultExecutionRequestSerializer: (executionRequest: ExecutionRequest) => any;
export declare const defaultParamsSerializer: (params: GraphQLParams) => any;
export declare function useHmacUpstreamSignature(options: HMACUpstreamSignatureOptions): MeshServePlugin;
export type HMACUpstreamSignatureValidationOptions = {
    secret: string;
    extensionName?: string;
    serializeParams?: (params: GraphQLParams) => string;
};
export declare function useHmacSignatureValidation(options: HMACUpstreamSignatureValidationOptions): YogaPlugin;
