import type { Tool } from './tool';
export declare class Team {
    readonly memberDefaults: Team.Member;
    defaultResponder?: string;
    shellSpecialists: string[];
    readonly members: Record<string, Team.Member>;
    constructor(params: {
        memberDefaults?: Team.Member;
        defaultResponder?: string;
        shellSpecialists?: string[];
        members?: Record<string, Team.Member>;
    });
    getDefaultResponder(): Team.Member | undefined;
    getMember(id: string | undefined): Team.Member | undefined;
}
export declare namespace Team {
    export type McpDeclaredToolsets = {
        kind: 'missing';
    } | {
        kind: 'invalid';
        errorText: string;
    } | {
        kind: 'loaded';
        declaredServerIds: ReadonlySet<string>;
        invalidServerIds: ReadonlySet<string>;
    };
    export function readMcpDeclaredToolsets(): Promise<McpDeclaredToolsets>;
    export function listExplicitToolsets(member: Team.Member): string[];
    type CodexModelParams = {
        temperature?: number;
        service_tier?: 'auto' | 'default' | 'flex' | 'scale' | 'priority';
        top_p?: number;
        reasoning_effort?: 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh';
        reasoning_summary?: 'auto' | 'concise' | 'detailed' | 'none';
        verbosity?: 'low' | 'medium' | 'high';
        parallel_tool_calls?: boolean;
        web_search?: 'disabled' | 'cached' | 'live';
        json_response?: boolean;
    };
    type OpenAiModelParams = {
        temperature?: number;
        service_tier?: 'auto' | 'default' | 'flex' | 'scale' | 'priority';
        top_p?: number;
        reasoning_effort?: 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh';
        reasoning_summary?: 'auto' | 'concise' | 'detailed' | 'none';
        verbosity?: 'low' | 'medium' | 'high';
        parallel_tool_calls?: boolean;
        safety_identifier?: string;
        text_format?: 'text' | 'json_object' | 'json_schema';
        text_format_json_schema_name?: string;
        text_format_json_schema?: string;
        text_format_json_schema_strict?: boolean;
        web_search_tool?: boolean;
        web_search_context_size?: 'low' | 'medium' | 'high';
        web_search_allowed_domains?: string[];
        web_search_include_sources?: boolean;
    };
    type OpenAiCompatibleThinkingMode = 'auto' | 'off' | 'low' | 'medium' | 'high';
    type OpenAiCompatibleModelParams = {
        temperature?: number;
        service_tier?: 'auto' | 'default' | 'flex' | 'scale' | 'priority';
        top_p?: number;
        parallel_tool_calls?: boolean;
        safety_identifier?: string;
        text_format?: 'text' | 'json_object' | 'json_schema';
        text_format_json_schema_name?: string;
        text_format_json_schema?: string;
        text_format_json_schema_strict?: boolean;
        reasoning_effort?: 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh';
        reasoning_split?: boolean;
        thinking?: boolean | OpenAiCompatibleThinkingMode | Record<string, unknown>;
    };
    type AnthropicThinkingConfig = {
        type: 'adaptive';
    } | {
        type: 'disabled';
    } | {
        type: 'enabled';
        budget_tokens: number;
    };
    type AnthropicModelParams = {
        temperature?: number;
        max_tokens?: number;
        top_p?: number;
        top_k?: number;
        stop_sequences?: string[];
        reasoning_split?: boolean;
        thinking?: AnthropicThinkingConfig;
        json_response?: boolean;
    };
    type AnthropicCompatibleModelParams = Omit<AnthropicModelParams, 'thinking'> & {
        thinking?: boolean;
    };
    export interface ModelParams {
        json_response?: boolean;
        codex?: CodexModelParams;
        openai?: OpenAiModelParams;
        'openai-compatible'?: OpenAiCompatibleModelParams;
        anthropic?: AnthropicModelParams;
        'anthropic-compatible'?: AnthropicCompatibleModelParams;
    }
    /**
     * Team.Member
     *
     * Represents an agent/member with model/provider and tool configuration.
     * Also supports resolving toolsets into concrete tool lists.
     */
    export class Member {
        readonly id: string;
        name: string;
        provider?: string;
        model?: string;
        gofor?: string | string[] | Record<string, string>;
        nogo?: string | string[] | Record<string, string>;
        toolsets?: string[];
        tools?: string[];
        model_params?: ModelParams;
        fbr_effort?: number;
        fbr_model_params?: ModelParams;
        diligence_push_max?: number;
        read_dirs?: string[];
        write_dirs?: string[];
        no_read_dirs?: string[];
        no_write_dirs?: string[];
        read_file_ext_names?: string[];
        write_file_ext_names?: string[];
        no_read_file_ext_names?: string[];
        no_write_file_ext_names?: string[];
        icon?: string;
        streaming?: boolean;
        hidden?: boolean;
        internal_allow_minds?: boolean;
        constructor(params: {
            id: string;
            name: string;
            provider?: string;
            model?: string;
            gofor?: string | string[] | Record<string, string>;
            nogo?: string | string[] | Record<string, string>;
            toolsets?: string[];
            tools?: string[];
            model_params?: ModelParams;
            fbr_effort?: number;
            fbr_model_params?: ModelParams;
            diligence_push_max?: number;
            read_dirs?: string[];
            write_dirs?: string[];
            no_read_dirs?: string[];
            no_write_dirs?: string[];
            read_file_ext_names?: string[];
            write_file_ext_names?: string[];
            no_read_file_ext_names?: string[];
            no_write_file_ext_names?: string[];
            icon?: string;
            streaming?: boolean;
            hidden?: boolean;
            internal_allow_minds?: boolean;
        });
        setName(name: string): void;
        setProvider(provider: string | undefined): void;
        setModel(model: string | undefined): void;
        setGofor(gofor: string | string[] | Record<string, string> | undefined): void;
        setNogo(nogo: string | string[] | Record<string, string> | undefined): void;
        setToolsets(toolsets: string[] | undefined): void;
        setTools(tools: string[] | undefined): void;
        setModelParams(modelParams: ModelParams | undefined): void;
        setFbrEffort(effort: number | undefined): void;
        setFbrModelParams(modelParams: ModelParams | undefined): void;
        setDiligencePushMax(max: number | undefined): void;
        setReadDirs(readDirs: string[] | undefined): void;
        setWriteDirs(writeDirs: string[] | undefined): void;
        setNoReadDirs(noReadDirs: string[] | undefined): void;
        setNoWriteDirs(noWriteDirs: string[] | undefined): void;
        setReadFileExtNames(readFileExtNames: string[] | undefined): void;
        setWriteFileExtNames(writeFileExtNames: string[] | undefined): void;
        setNoReadFileExtNames(noReadFileExtNames: string[] | undefined): void;
        setNoWriteFileExtNames(noWriteFileExtNames: string[] | undefined): void;
        setIcon(icon: string | undefined): void;
        setStreaming(streaming: boolean | undefined): void;
        setHidden(hidden: boolean | undefined): void;
        /**
         * Returns a flat list of assignable toolset names after expanding wildcards and exclusions.
         * Honors declaration order and returns each toolset at most once.
         */
        listResolvedToolsetNames(options?: {
            onMissing?: 'warn' | 'silent';
            dynamicToolsetNames?: readonly string[];
            declaredMcpToolsetNames?: ReadonlySet<string>;
            invalidMcpToolsetNames?: ReadonlySet<string>;
        }): string[];
        listTools(options?: {
            onMissingToolset?: 'warn' | 'silent';
            onMissingTool?: 'warn' | 'silent';
            dynamicToolsetNames?: readonly string[];
            declaredMcpToolsetNames?: ReadonlySet<string>;
            invalidMcpToolsetNames?: ReadonlySet<string>;
        }): Tool[];
    }
    export function listDynamicToolsetNamesForMember(params: {
        member: Team.Member;
        taskDocPath?: string;
        rtwsRootAbs?: string;
    }): Promise<readonly string[]>;
    export function load(): Promise<Team>;
    export const TEAM_YAML_ROOT_KEYS: readonly ["member_defaults", "default_responder", "shell_specialists", "members"];
    export const TEAM_YAML_MEMBER_KEYS: readonly ["name", "from", "use", "import", "provider", "model", "gofor", "nogo", "toolsets", "tools", "model_params", "fbr-effort", "fbr_effort", "fbr_model_params", "diligence-push-max", "diligence_push_max", "read_dirs", "write_dirs", "no_read_dirs", "no_write_dirs", "read_file_ext_names", "write_file_ext_names", "no_read_file_ext_names", "no_write_file_ext_names", "icon", "streaming", "hidden"];
    export const TEAM_YAML_MODEL_PARAMS_ROOT_KEYS: readonly ["json_response", "codex", "openai", "openai-compatible", "anthropic", "anthropic-compatible"];
    export const TEAM_YAML_MODEL_PARAMS_OPENAI_KEYS: readonly ["temperature", "service_tier", "top_p", "reasoning_effort", "reasoning_summary", "verbosity", "parallel_tool_calls", "safety_identifier", "text_format", "text_format_json_schema_name", "text_format_json_schema", "text_format_json_schema_strict", "web_search_tool", "web_search_context_size", "web_search_allowed_domains", "web_search_include_sources"];
    export const TEAM_YAML_MODEL_PARAMS_OPENAI_COMPATIBLE_KEYS: readonly ["temperature", "service_tier", "top_p", "parallel_tool_calls", "safety_identifier", "text_format", "text_format_json_schema_name", "text_format_json_schema", "text_format_json_schema_strict", "reasoning_effort", "reasoning_split", "thinking"];
    export const TEAM_YAML_MODEL_PARAMS_CODEX_KEYS: readonly ["temperature", "service_tier", "top_p", "reasoning_effort", "reasoning_summary", "verbosity", "parallel_tool_calls", "web_search", "json_response"];
    export const TEAM_YAML_MODEL_PARAMS_ANTHROPIC_KEYS: readonly ["temperature", "max_tokens", "top_p", "top_k", "stop_sequences", "reasoning_split", "thinking", "json_response"];
    export {};
}
