import 'reflect-metadata'; import type { CreateOptions, FlowSpec, InvokeBaseContext, RunExtras, RunOptions } from './invoker.types'; import { InvokerContext } from './invoker.context'; import { Scope } from '../scope'; import { AppLocalInstance } from '../app/instances'; import { FlowName } from '@frontmcp/sdk'; export type Newable = new (...args: Args) => T; export type FlowAsCtxStatics = Pick; export declare abstract class FlowAsCtx, TOutDraft = Partial> extends InvokerContext { /** Run another Flow class using the same Invoker instance and provider context. */ /** Adapter: turn a decorated Flow class into FlowSpec + extras */ static asFlowSpec, F extends C, A extends any[]>(FlowCtor: Newable): { flow: FlowSpec; extrasFactory: () => RunExtras; }; static createInvoker(this: Newable & FlowAsCtxStatics, opName: FlowName, options: CreateOptions & { scope: Scope; app?: AppLocalInstance; }): RunOptions; }