import type { GrafastTimeouts } from "./interfaces.ts";
export interface GrafastOperationOptions {
    /**
     * A list of 'explain' types that should be included in `extensions.explain`.
     *
     * - `plan` will cause the plan JSON to be included
     * - other values are dependent on the plugins in play
     *
     * If set to `true` then all possible explain types will be exposed.
     */
    explain?: boolean | string[];
    /**
     * If true, the result will be returned as a string rather than an object -
     * this is an optimization for returning the data over a network socket or
     * similar.
     */
    outputDataAsString?: boolean;
    timeouts?: GrafastTimeouts;
    /**
     * How many planning layers deep do we allow? Should be handled by validation.
     *
     * A planning layer can happen due to:
     *
     * - A nested selection set
     * - Planning a field return type
     * - A list position
     * - A polymorphic type
     * - A deferred/streamed response
     *
     * These reasons may each cause 1, 2 or 3 planning layers to be added, so this
     * limit should be set quite high - e.g. 6x the selection set depth.
     */
    maxPlanningDepth?: number;
}
//# sourceMappingURL=prepare.d.ts.map