import { ExecutionRequest, ExecutionResult } from './Interfaces.js'; export type MaybePromise = PromiseLike | T; export type MaybeAsyncIterable = AsyncIterable | T; export type AsyncExecutor, TBaseExtensions = Record> = = Record, TContext extends TBaseContext = TBaseContext, TRoot = any, TExtensions extends TBaseExtensions = TBaseExtensions>(request: ExecutionRequest) => Promise>>; export type SyncExecutor, TBaseExtensions = Record> = = Record, TContext extends TBaseContext = TBaseContext, TRoot = any, TExtensions extends TBaseExtensions = TBaseExtensions>(request: ExecutionRequest) => ExecutionResult; export type Executor, TBaseExtensions = Record> = = Record, TContext extends TBaseContext = TBaseContext, TRoot = any, TExtensions extends TBaseExtensions = TBaseExtensions>(request: ExecutionRequest) => MaybePromise>>;