import type { TurnEvent, TurnRequest } from "../agent/types.js";
import type { HookRegistry } from "../contracts/hooks.js";
import type { ToolCatalog } from "../runtime/ports/index.js";
import { type CommunitySignalReporter } from "../runtime/community/community-signal-reporter.js";
import { type SkillSandbox } from "../runtime/sandbox/skill-sandbox.js";
import { type SkillLifecycleRecord } from "../skills/skill-system/skill-lifecycle.js";
export interface SkillSubturnAgent {
    run(request: TurnRequest, signal?: AbortSignal): AsyncGenerator<TurnEvent>;
}
export interface SkillSubturnHost {
    getAgent(): SkillSubturnAgent | null;
    getCurrentSessionId(): string;
    getCurrentHooks(): HookRegistry | null;
}
export interface ExecuteSkillSubturnParams {
    host: SkillSubturnHost;
    toolCatalog: ToolCatalog;
    skillName: string;
    skillContent: string;
    userArgs?: string;
    signal?: AbortSignal;
    communitySignalReporter?: CommunitySignalReporter | null;
    skillSandbox?: SkillSandbox | null;
}
export declare function executeSkillSubturn(params: ExecuteSkillSubturnParams): Promise<string>;
export declare function resolveSkillSubagentTypeForLifecycle(skillName: string, record: SkillLifecycleRecord | undefined): string;
