/**
 * Trust level classification for registered tools.
 * - verified: Official tools audited by Private.Me
 * - community: Community-contributed tools with peer review
 * - experimental: Unverified tools, use with caution
 */
export type TrustLevel = 'verified' | 'community' | 'experimental';
/**
 * JSON Schema-compatible type definition for tool parameters.
 */
export interface ToolSchema {
    readonly type: string;
    readonly properties?: Record<string, unknown>;
    readonly required?: readonly string[];
}
/**
 * Complete metadata for a registered tool.
 */
export interface ToolMetadata {
    /** Unique tool identifier (e.g., "stripe:createCharge", "github:createIssue") */
    readonly name: string;
    /** Human-readable description of tool capabilities */
    readonly description: string;
    /** JSON Schema for tool input parameters */
    readonly schema: ToolSchema;
    /** Trust level classification */
    readonly trustLevel: TrustLevel;
    /** Tool endpoint URL */
    readonly endpoint: string;
    /** Searchable capability tags (e.g., ["payment", "charge", "stripe"]) */
    readonly capabilities: readonly string[];
    /** Tool owner/publisher identity (DID) - optional */
    readonly owner?: string;
    /** Version (semver) - optional */
    readonly version?: string;
    /** Creation timestamp - optional */
    readonly createdAt?: number;
    /** Last update timestamp - optional */
    readonly updatedAt?: number;
}
/**
 * Complete registry entry (metadata)
 */
export interface RegistryEntry {
    readonly metadata: ToolMetadata;
}
/**
 * Registry query filters
 */
export interface RegistryQuery {
    /** Filter by tool name (substring match) */
    readonly name?: string;
    /** Filter by capabilities/tags (any match) */
    readonly capabilities?: readonly string[];
    /** Filter by trust level */
    readonly trustLevel?: TrustLevel;
    /** Filter by owner DID */
    readonly owner?: string;
    /** Limit results */
    readonly limit?: number;
}
/**
 * Registry statistics
 */
export interface RegistryStats {
    readonly totalTools: number;
    readonly byTrustLevel: Record<TrustLevel, number>;
    readonly byOwner: Record<string, number>;
}
/**
 * Tool registration options
 */
export interface RegisterOptions {
    /** Override existing entry (requires ownership verification) */
    readonly override?: boolean;
    /** Auto-increment version */
    readonly autoVersion?: boolean;
}
/**
 * Registry error types
 */
export declare class RegistryError extends Error {
    readonly code: string;
    constructor(message: string, code: string);
}
export declare class ToolNotFoundError extends RegistryError {
    constructor(name: string);
}
export declare class ToolAlreadyExistsError extends RegistryError {
    constructor(name: string);
}
export declare class UnauthorizedError extends RegistryError {
    constructor(name: string);
}
//# sourceMappingURL=types.d.ts.map