import type { BaseToolFamily, BaseToolRiskLevel } from "../../agent_executionEngine/basic_toolLayer/baseTools/baseToolDefinition.js";
import { type ToolSpec } from "../runtimeAgentManifest.js";
import { type BaseToolRealityCapabilityClass, type BaseToolRealityProjection } from "./baseToolRealityLedger.js";
export type BaseToolDeveloperCatalogEntry = {
    toolId: string;
    family: BaseToolFamily;
    storageFamily: string;
    group: string;
    title: string;
    riskLevel: BaseToolRiskLevel;
    capabilityClass: BaseToolRealityCapabilityClass;
    projection: BaseToolRealityProjection;
    modelRequired: boolean;
    description?: string;
};
export type BaseToolDeveloperLookupResult = {
    ok: true;
    tool: ToolSpec;
    entry: BaseToolDeveloperCatalogEntry;
} | {
    ok: false;
    error: {
        code: "BASE_TOOL_NOT_FOUND";
        message: string;
        publicSafe: true;
    };
};
export type BaseToolSpecInput = Omit<ToolSpec, "toolId" | "family" | "group"> & {
    metadata?: Readonly<Record<string, unknown>>;
};
export type CodingToolSetOptions = {
    includeGit?: boolean;
    includeSearch?: boolean;
    includeShell?: boolean;
};
export declare function listBaseToolDeveloperCatalog(): readonly BaseToolDeveloperCatalogEntry[];
export declare function tryBaseToolById(toolId: string, input?: BaseToolSpecInput): BaseToolDeveloperLookupResult;
export declare const baseTools: {
    readonly all: () => readonly BaseToolDeveloperCatalogEntry[];
    readonly family: (storageFamily: string) => readonly BaseToolDeveloperCatalogEntry[];
    readonly byId: typeof tryBaseToolById;
    readonly code: {
        readonly read: (input?: BaseToolSpecInput) => ToolSpec;
        readonly scan: (input?: BaseToolSpecInput) => ToolSpec;
        readonly searchRipgrep: (input?: BaseToolSpecInput) => ToolSpec;
        readonly replaceFile: (input?: BaseToolSpecInput) => ToolSpec;
        readonly modify: (input?: BaseToolSpecInput) => ToolSpec;
        readonly overwrite: (input?: BaseToolSpecInput) => ToolSpec;
        readonly delete: (input?: BaseToolSpecInput) => ToolSpec;
        readonly format: (input?: BaseToolSpecInput) => ToolSpec;
        readonly testCode: (input?: BaseToolSpecInput) => ToolSpec;
        readonly benchmark: (input?: BaseToolSpecInput) => ToolSpec;
        readonly debugRun: (input?: BaseToolSpecInput) => ToolSpec;
        readonly debugCaptureState: (input?: BaseToolSpecInput) => ToolSpec;
        readonly debugCollectLogs: (input?: BaseToolSpecInput) => ToolSpec;
        readonly lsp: {
            readonly locateDefinition: (input?: BaseToolSpecInput) => ToolSpec;
            readonly traceReferences: (input?: BaseToolSpecInput) => ToolSpec;
            readonly inspectDiagnostics: (input?: BaseToolSpecInput) => ToolSpec;
            readonly renameSymbol: (input?: BaseToolSpecInput) => ToolSpec;
            readonly completeCode: (input?: BaseToolSpecInput) => ToolSpec;
        };
    };
    readonly git: {
        readonly getRepositoryStatus: (input?: BaseToolSpecInput) => ToolSpec;
        readonly getWorkingTreeDiff: (input?: BaseToolSpecInput) => ToolSpec;
        readonly getCommitHistory: (input?: BaseToolSpecInput) => ToolSpec;
        readonly showGitObjectDetails: (input?: BaseToolSpecInput) => ToolSpec;
        readonly traceLineOwnership: (input?: BaseToolSpecInput) => ToolSpec;
        readonly addToStaging: (input?: BaseToolSpecInput) => ToolSpec;
        readonly resetStagingOrCommit: (input?: BaseToolSpecInput) => ToolSpec;
        readonly restoreWorkingTree: (input?: BaseToolSpecInput) => ToolSpec;
        readonly stashChanges: (input?: BaseToolSpecInput) => ToolSpec;
        readonly fetchRemoteUpdates: (input?: BaseToolSpecInput) => ToolSpec;
        readonly pullRemoteChanges: (input?: BaseToolSpecInput) => ToolSpec;
        readonly pushLocalChanges: (input?: BaseToolSpecInput) => ToolSpec;
    };
    readonly shell: {
        readonly commandExecution: (input?: BaseToolSpecInput) => ToolSpec;
        readonly invocationExecution: (input?: BaseToolSpecInput) => ToolSpec;
        readonly scriptExecution: (input?: BaseToolSpecInput) => ToolSpec;
        readonly backgroundExecution: (input?: BaseToolSpecInput) => ToolSpec;
        readonly foregroundExecution: (input?: BaseToolSpecInput) => ToolSpec;
        readonly processSpawning: (input?: BaseToolSpecInput) => ToolSpec;
        readonly processTermination: (input?: BaseToolSpecInput) => ToolSpec;
        readonly outputCapture: (input?: BaseToolSpecInput) => ToolSpec;
        readonly commandValidation: (input?: BaseToolSpecInput) => ToolSpec;
        readonly permissionControl: (input?: BaseToolSpecInput) => ToolSpec;
        readonly sandboxEnforcement: (input?: BaseToolSpecInput) => ToolSpec;
    };
    readonly search: {
        readonly fetch: (input?: BaseToolSpecInput) => ToolSpec;
        readonly searchEngine: (input?: BaseToolSpecInput) => ToolSpec;
        readonly nativeSearch: (input?: BaseToolSpecInput) => ToolSpec;
        readonly ground: (input?: BaseToolSpecInput) => ToolSpec;
    };
    readonly skill: {
        readonly generate: (input?: BaseToolSpecInput) => ToolSpec;
        readonly iterate: (input?: BaseToolSpecInput) => ToolSpec;
        readonly management: (input?: BaseToolSpecInput) => ToolSpec;
        readonly remove: (input?: BaseToolSpecInput) => ToolSpec;
        readonly ripgrep: (input?: BaseToolSpecInput) => ToolSpec;
        readonly summarize: (input?: BaseToolSpecInput) => ToolSpec;
    };
    readonly mcp: {
        readonly connect: (input?: BaseToolSpecInput) => ToolSpec;
        readonly ping: (input?: BaseToolSpecInput) => ToolSpec;
        readonly listTools: (input?: BaseToolSpecInput) => ToolSpec;
        readonly call: (input?: BaseToolSpecInput) => ToolSpec;
        readonly stream: (input?: BaseToolSpecInput) => ToolSpec;
        readonly listResources: (input?: BaseToolSpecInput) => ToolSpec;
        readonly readResource: (input?: BaseToolSpecInput) => ToolSpec;
    };
    readonly omni: {
        readonly viewImage: (input?: BaseToolSpecInput) => ToolSpec;
        readonly generateImage: (input?: BaseToolSpecInput) => ToolSpec;
        readonly imageFormatConversion: (input?: BaseToolSpecInput) => ToolSpec;
        readonly listenAudio: (input?: BaseToolSpecInput) => ToolSpec;
        readonly generateAudio: (input?: BaseToolSpecInput) => ToolSpec;
        readonly viewVideo: (input?: BaseToolSpecInput) => ToolSpec;
        readonly generateVideo: (input?: BaseToolSpecInput) => ToolSpec;
    };
    readonly computeruse: {
        readonly fullscreenScreenshot: (input?: BaseToolSpecInput) => ToolSpec;
        readonly windowScreenshot: (input?: BaseToolSpecInput) => ToolSpec;
        readonly mouseClick: (input?: BaseToolSpecInput) => ToolSpec;
        readonly mouseMove: (input?: BaseToolSpecInput) => ToolSpec;
        readonly keyboardInputEmulation: (input?: BaseToolSpecInput) => ToolSpec;
        readonly cameraCapturePhoto: (input?: BaseToolSpecInput) => ToolSpec;
        readonly microphoneStartRecording: (input?: BaseToolSpecInput) => ToolSpec;
    };
};
export declare const toolSets: {
    readonly coding: {
        readonly readonly: (input?: CodingToolSetOptions) => readonly ToolSpec[];
        readonly full: (input?: CodingToolSetOptions) => readonly ToolSpec[];
    };
    readonly git: {
        readonly inspection: () => readonly ToolSpec[];
    };
    readonly shell: {
        readonly safe: () => readonly ToolSpec[];
    };
    readonly research: {
        readonly web: () => readonly ToolSpec[];
    };
    readonly skill: {
        readonly context: () => readonly ToolSpec[];
        readonly search: () => readonly ToolSpec[];
        readonly authoring: () => readonly ToolSpec[];
        readonly full: () => readonly ToolSpec[];
    };
};
export declare const baseToolDeveloperCatalogDescriptor: {
    readonly surface: "runtime.execEngine.baseToolDeveloperCatalog";
    readonly validatesAgainst: "runtime.execEngine.baseToolRealityLedger";
    readonly publicHelpers: readonly ["baseTools", "toolSets", "tryBaseToolById", "listBaseToolDeveloperCatalog"];
    readonly toolSpecFamilyUsesStorageFamily: true;
    readonly skillBaseIsContextMaterialNotModelProvider: true;
    readonly doesNotExecuteTools: true;
};
