import { A as AdapterContract, a as AdapterRequest, G as GetResponseAdapterProps, O as OnErrorProps } from '../../adapter.contract-Cp2Jsh5V.cjs';
import { I as ILogger } from '../../logger-F8qccesk.cjs';
import '../../headers-DjfGHDmI.cjs';
import 'http';
import 'node:http';

/**
 * The options for {@link ApolloServerMutationAdapter}
 *
 * @breadcrumb Adapters / Apollo Server / ApolloServerMutationAdapter
 * @public
 */
type ApolloServerMutationAdapterOptions = {
    /**
     * Specify the name of mutation that will be called when an event was received
     */
    mutationName: string;
    /**
     * Specify the mutation result schema.
     * Use this to customize the behavior when you need to return a specific object to be handled by the Adapter, like SQS with Batch Mode.
     *
     * @defaultValue `{ __typename }`
     */
    mutationResultQuery?: string;
};
/**
 * The adapter that wraps another adapter to force a transformation of the event data as a mutation to Apollo Server be able to handle.
 *
 * @breadcrumb Adapters / Apollo Server / ApolloServerMutationAdapter
 * @public
 */
declare class ApolloServerMutationAdapter<TEvent, TContext, TResponse> implements AdapterContract<TEvent, TContext, TResponse> {
    protected readonly baseAdapter: AdapterContract<TEvent, TContext, TResponse>;
    protected readonly options: ApolloServerMutationAdapterOptions;
    /**
     * The default constructor
     */
    constructor(baseAdapter: AdapterContract<TEvent, TContext, TResponse>, options: ApolloServerMutationAdapterOptions);
    /**
     * {@inheritDoc}
     */
    canHandle(event: unknown, context: TContext, log: ILogger): boolean;
    /**
     * {@inheritDoc}
     */
    getAdapterName(): string;
    /**
     * {@inheritDoc}
     */
    getRequest(event: TEvent, context: TContext, log: ILogger): AdapterRequest;
    /**
     * {@inheritDoc}
     */
    getResponse(props: GetResponseAdapterProps<TEvent>): TResponse;
    /**
     * {@inheritDoc}
     */
    onErrorWhileForwarding(props: OnErrorProps<TEvent, TResponse>): void;
}

export { ApolloServerMutationAdapter, type ApolloServerMutationAdapterOptions };
