import type { CompactionConfig } from '../../config/runtime.js';
import type { PathBuilder } from '../../session/workspace/path-builder.js';
import type { AdvisoryConfig } from '../../types/advisory/index.js';
import type { AgentRuntimeContext, RuntimeToolOverrides } from '../../types/agent/base.js';
import type { AgentContextLevel } from '../../types/agent/factory.js';
import { type CheckpointId, type ResumeHandler } from '../../types/hitl/index.js';
import type { RunId, SessionId, TenantId } from '../../types/ids/index.js';
import type { InvocationState } from '../../types/invocation/index.js';
import { type Message } from '../../types/message/index.js';
import type { AgentPersona } from '../../types/persona/index.js';
import type { LLMProvider } from '../../types/provider/index.js';
import type { TaskRouterConfig } from '../../types/router/index.js';
import type { AgentRunConfig, Run, RunEvent, RunEventListener } from '../../types/run/index.js';
import type { SandboxProvider } from '../../types/sandbox/index.js';
import type { ProjectId, ThreadId } from '../../types/session/ids.js';
import type { Skill } from '../../types/skills/index.js';
import type { TaskStore } from '../../types/task/index.js';
import type { ToolRegistryContract } from '../../types/tool/index.js';
import type { VerificationGateConfig } from '../../types/verification/index.js';
import type { ModelPricing } from '../../utils/cost.js';
import type { ContextCache } from './context-cache.js';
export interface QueryParams {
    systemPrompt?: string;
    persona?: AgentPersona;
    skills?: Skill[];
    basePrompt?: string;
    provider: LLMProvider;
    tools: ToolRegistryContract;
    runConfig: AgentRunConfig;
    allowedTools?: string[];
    agentId: string;
    agentName: string;
    workingDirectory?: string;
    pricing?: ModelPricing;
    enableActivityTracking?: boolean;
    messages: Message[];
    signal?: AbortSignal;
    resumeHandler: ResumeHandler;
    resumeFromCheckpoint?: CheckpointId;
    /** Session scope for the run. Required — every run is attributed to a Session. */
    sessionId: SessionId;
    /**
     * Topic the Session lives under. Required in 0.3.0 — every run carries
     * the full five-layer scope (Tenant → Project → Thread → Session →
     * Run). Denormalized from `session.threadId`; callers build this
     * alongside `sessionId` so the query pipeline never needs a second
     * SessionStore round-trip to recover it.
     */
    threadId: ThreadId;
    /** Long-lived goal scope for the run. Required. */
    projectId: ProjectId;
    /** Isolation boundary (Convention #17). Required. */
    tenantId: TenantId;
    /**
     * Optional path layout override. Defaults to a {@link DefaultPathBuilder}
     * rooted at `{workingDirectory}/.namzu`. First-call filesystem migration
     * runs on this same entry point.
     */
    pathBuilder?: PathBuilder;
    runId?: RunId;
    parentRunId?: RunId;
    depth?: number;
    contextCache?: ContextCache;
    contextLevel?: AgentContextLevel;
    continuationMode?: boolean;
    taskStore?: TaskStore;
    runtimeToolOverrides?: RuntimeToolOverrides;
    runtimeContext?: AgentRuntimeContext;
    taskGateway?: import('../../types/agent/gateway.js').TaskGateway;
    launchedTasks?: Map<import('../../types/ids/index.js').TaskId, import('./iteration/phases/context.js').LaunchedTaskMeta>;
    onContextCreated?: (ctx: {
        planManager: import('../../manager/plan/lifecycle.js').PlanManager;
    }) => void;
    taskRouter?: TaskRouterConfig;
    advisory?: AdvisoryConfig;
    compactionConfig?: CompactionConfig;
    agentBus?: import('../../bus/index.js').AgentBus;
    verificationGate?: VerificationGateConfig;
    pluginManager?: import('../../plugin/lifecycle.js').PluginLifecycleManager;
    sandboxProvider?: SandboxProvider;
    invocationState?: InvocationState;
}
export declare function query(params: QueryParams): AsyncGenerator<RunEvent, Run>;
export declare function drainQuery(params: Omit<QueryParams, 'resumeHandler'> & {
    resumeHandler?: ResumeHandler;
}, listener?: RunEventListener): Promise<Run>;
//# sourceMappingURL=index.d.ts.map