import type { SeedAgentConfig, SeedAgentName, SeedTeamSpawnPolicy } from "../../config/schema.js";
import { type SeedRuntimeLanguage } from "../language/index.js";
import type { SeedTeamMemberWriteSurface } from "./types.js";
import type { SeedTeamEvidenceContract, SeedTeamLaunchPolicy, SeedTeamMcpPolicy, SeedTeamMemberSpec, SeedTeamModelRoute, SeedTeamSkillPolicy, SeedTeamSpec, SeedTeamToolPolicy } from "./spec.js";
export type SeedDynamicMemberExecutionSurface = {
    write_surface: SeedTeamMemberWriteSurface;
    native_tools: string[];
};
export type SeedDynamicMemberContract = {
    schema_version: 1;
    run_id: string;
    team_id: string;
    team_name: string;
    role_id: string;
    role_label: string;
    capability_profile: string;
    opencode_agent: SeedAgentName;
    mission_prompt: string;
    model_route: SeedTeamModelRoute;
    launch_policy: SeedTeamLaunchPolicy;
    tool_policy: SeedTeamToolPolicy;
    mcp_policy: SeedTeamMcpPolicy;
    skill_policy: SeedTeamSkillPolicy;
    spawn_policy: SeedTeamSpawnPolicy;
    read_paths: string[];
    write_paths: string[];
    lease_requirements: string[];
    authoritative_inputs: string[];
    evidence_inputs: string[];
    evidence_contract: SeedTeamEvidenceContract;
    expected_outputs: string[];
    stop_condition: string;
    coverage: string[];
    subplan_ids: string[];
    handoff_message_id?: string;
    context_refs: string[];
    professor_facing_language: SeedRuntimeLanguage;
    execution_surface: SeedDynamicMemberExecutionSurface;
    prompt: string;
};
export declare function buildDynamicMemberContract(input: {
    runId: string;
    spec: SeedTeamSpec;
    member: SeedTeamMemberSpec;
    config?: SeedAgentConfig;
    handoffMessageId?: string;
    contextRefs?: string[];
    subplanIds?: string[];
}): SeedDynamicMemberContract;
export declare function resolveVirtualMemberOpenCodeAgent(config?: SeedAgentConfig): SeedAgentName;
export declare function resolveExecutionSurface(member: SeedTeamMemberSpec): SeedDynamicMemberExecutionSurface;
