export type RuntimeToolName = string & {
    readonly __brand: "RuntimeToolName";
};
export type ProviderToolName = string & {
    readonly __brand: "ProviderToolName";
};
export type ProviderToolNameBinding = Readonly<{
    providerName: ProviderToolName;
    runtimeName: RuntimeToolName;
}>;
export interface ProviderToolNameCodec {
    bindings(): readonly ProviderToolNameBinding[];
    toProvider(runtimeName: RuntimeToolName): ProviderToolName;
    toRuntime(providerName: ProviderToolName): RuntimeToolName | undefined;
}
export declare const PLAN_UPDATE_TOOL_NAME = "__best_agent_plan_update";
export declare const PHASE_RESULT_TOOL_NAME = "__best_agent_phase_result";
export declare const DELEGATE_TASKS_TOOL_NAME = "delegate_tasks";
export declare const PROVIDER_TOOL_NAME_RE: RegExp;
export declare function isProviderToolName(value: string): value is ProviderToolName;
export declare function toRuntimeToolName(value: string): RuntimeToolName;
export declare function isReservedProviderToolName(value: string): boolean;
export declare function isPersistableProviderToolName(value: string): value is ProviderToolName;
export declare function toProviderToolName(runtimeName: string): ProviderToolName;
export declare function toUniqueProviderToolName(runtimeName: string, used: Set<string>): ProviderToolName;
export declare function prepareProviderToolNameBindings(tools: readonly {
    name: string;
}[]): ProviderToolNameBinding[];
export declare function createProviderToolNameCodec(tools: readonly {
    name: string;
}[]): ProviderToolNameCodec;
export declare function toProviderHistoryToolName(toolName: string, bindings: readonly ProviderToolNameBinding[]): string;
//# sourceMappingURL=provider-tool-names.d.ts.map