import type { BaseToolDefinition, BaseToolDependencyDeclaration, BaseToolHandler, BaseToolInvokeRequest, BaseToolInvokeResult, BaseToolRiskLevel, BaseToolSchemaLike } from "../../../../agentCore/agent_executionEngine/basic_toolLayer/baseTools/baseToolDefinition.js";
export type OmniBestPracticeProviderName = "anthropic" | "openai" | "deepmind" | "local-wasm" | "external" | "praxis-native";
export type OmniBestPracticeSource = {
    kind: "cli" | "agent-sdk" | "api-sdk" | "praxis-native";
    label: string;
    path?: string;
};
export type OmniBestPracticeMetadata<Name extends string = OmniBestPracticeProviderName> = {
    providerName: Name;
    source: OmniBestPracticeSource;
    directCliSupport: boolean;
    sideEffectPolicy: "runtime-governed";
    notes: readonly string[];
};
export type OmniProviderPracticeMetadata<Name extends string, Provider, Dependencies> = OmniBestPracticeMetadata<Name> & {
    createProvider(dependencies: Dependencies): Provider | undefined;
};
export type OmniProviderPracticeSelection<Name extends string, Provider, Practice> = {
    providerName: Name;
    practice: Practice;
    provider?: Provider;
};
export type OmniBaseToolDefinitionOptions<Input, Output> = {
    toolId: string;
    title: string;
    description: string;
    summary: string;
    storageGroup: string;
    riskLevel?: BaseToolRiskLevel;
    permissionHints: readonly string[];
    dependencies: readonly BaseToolDependencyDeclaration[];
    inputSchema?: BaseToolSchemaLike;
    outputSchema?: BaseToolSchemaLike;
    storagePolicy?: BaseToolDefinition["storagePolicy"];
    metadata?: Readonly<Record<string, unknown>>;
};
export type OmniCoreResult<Output> = {
    ok: true;
    toolId: string;
    output: Output;
    events: readonly string[];
    audit?: unknown;
} | {
    ok: false;
    toolId: string;
    error: {
        code: string;
        message: string;
    };
    events: readonly string[];
};
export declare function jsonSchema(name: string, schema: unknown): BaseToolSchemaLike;
export declare function omniToolSkillDocPath(toolId: string, storageGroup: string): string;
export declare function omniToolSourcePath(toolId: string, storageGroup: string): string;
export declare function omniToolStoragePracticePath(toolId: string, storageGroup: string): string;
export declare function createOmniBaseToolDefinition<Input, Output>(options: OmniBaseToolDefinitionOptions<Input, Output>): BaseToolDefinition<Input, Output>;
export declare function orderOmniPractices<Name extends string, Practice extends OmniBestPracticeMetadata<Name>>(practices: readonly Practice[], preferredProvider: Name | undefined): readonly Practice[];
export declare function selectOmniProviderPractice<Name extends string, Provider, Dependencies>(practices: readonly OmniProviderPracticeMetadata<Name, Provider, Dependencies>[], dependencies: Dependencies & {
    preferredProvider?: Name;
}, fallbackPractice: OmniProviderPracticeMetadata<Name, Provider, Dependencies>): OmniProviderPracticeSelection<Name, Provider, OmniProviderPracticeMetadata<Name, Provider, Dependencies>>;
export declare function buildOmniPracticeAuditMetadata(selection: Pick<OmniProviderPracticeSelection<string, unknown, OmniBestPracticeMetadata<string>>, "providerName" | "practice">): Readonly<Record<string, unknown>>;
export declare function injectRuntimeInvocationMetadata(base: Readonly<Record<string, unknown>>, existing: Readonly<Record<string, unknown>> | undefined, request: Pick<BaseToolInvokeRequest, "runtimeId" | "sessionId" | "toolCallId" | "metadata">): Readonly<Record<string, unknown>>;
export declare function adaptOmniCoreResult<Output>(result: OmniCoreResult<Output>): BaseToolInvokeResult<Output>;
export declare function createOmniCoreHandler<Input, Output>(definition: BaseToolDefinition<Input, Output>, invokeCore: (request: BaseToolInvokeRequest<Input>) => Promise<OmniCoreResult<Output>> | OmniCoreResult<Output>): BaseToolHandler<Input, Output>;
