import { Plugin, PromiseOrValue } from 'graphql-yoga';
export declare function hashSHA256(text: string, api?: {
    crypto: Crypto;
    TextEncoder: (typeof globalThis)['TextEncoder'];
}): PromiseOrValue<string>;
export interface APQStoreOptions {
    max?: number;
    ttl?: number;
}
export declare function createInMemoryAPQStore(options?: APQStoreOptions): APQStore;
export interface APQOptions {
    store?: APQStore;
    hash?: (str: string, api: {
        crypto: Crypto;
        TextEncoder: typeof TextEncoder;
    }) => PromiseOrValue<string>;
    responseConfig?: {
        /**
         * If set true, status code of the response (if the query
         * is not found or mismatched) will be 200.
         */
        forceStatusCodeOk?: boolean;
    };
}
export interface APQStore {
    get(key: string): PromiseOrValue<string | null | undefined>;
    set(key: string, query: string): PromiseOrValue<any>;
}
export interface APQExtension {
    version: 1;
    sha256Hash: string;
}
export declare function useAPQ(options?: APQOptions): Plugin;
