import type { AgentDefinition, AgentDefinitionModelStrategy, AgentLoopKind, AgentProfileSource, AgentProfileSummary, PermissionRule } from "@best-agent/protocol";
export interface AgentProfile {
    allowedTools: string[];
    customLoopId?: string;
    defaultSkills?: string[];
    description: string;
    loopKind?: AgentLoopKind;
    maxChildTasks?: number;
    maxProviderTurns?: number;
    maxToolSteps?: number;
    modelStrategy?: AgentDefinitionModelStrategy;
    name: string;
    permissions?: PermissionRule[];
    source: AgentProfileSource;
    sourcePlugin?: string;
    systemPrompt?: string;
}
export type AgentProfileInput = AgentProfile | AgentDefinition;
interface AgentProfileRegistryOptions {
    availableToolNames?: string[];
}
interface CreateAgentProfileRegistryOptions extends AgentProfileRegistryOptions {
    profiles?: AgentProfileInput[];
}
export declare class AgentProfileRegistry {
    #private;
    constructor(profiles: AgentProfileInput[], options?: AgentProfileRegistryOptions);
    get(name: string): AgentProfile | undefined;
    require(name: string): AgentProfile;
    list(): AgentProfileSummary[];
    resolve(input: {
        prompt: string;
        requestedProfile?: string;
        strictRequested?: boolean;
    }): {
        profile: AgentProfile;
        prompt: string;
    };
}
export declare function createAgentProfileRegistry(profilesOrOptions?: AgentProfileInput[] | CreateAgentProfileRegistryOptions, availableToolNames?: string[]): AgentProfileRegistry;
export {};
//# sourceMappingURL=profile-registry.d.ts.map