import type { ToolName } from '../tools/constants.js';
import type { DevPhase, TeamConfig } from '../types/team-config.js';
export declare const PHASE_ORDER: readonly DevPhase[];
export declare function getPhaseOrder(phase: DevPhase): number;
export declare function canTransition(currentPhase: DevPhase, targetPhase: DevPhase): boolean;
export declare function transitionPhase(teamConfig: TeamConfig, targetPhase: DevPhase): TeamConfig;
export declare function getPhaseDescription(phase: DevPhase): string;
/**
 * Team tool names that are subject to phase gating.
 * Non-team tools (read_files, str_replace, etc.) are not gated by dev phase.
 */
export declare const TEAM_TOOL_NAMES: readonly ToolName[];
export declare function getPhaseTools(phase: DevPhase): ToolName[];
/**
 * Checks whether a specific tool is allowed in the given dev phase.
 * Only team tools are gated by phase. Non-team tools always return true.
 */
export declare function isToolAllowedInPhase(toolName: string, phase: DevPhase): boolean;
/**
 * Returns the minimum phase required to use a given team tool.
 * Returns null for non-team tools (they are always allowed).
 */
export declare function getMinimumPhaseForTool(toolName: string): DevPhase | null;
