import { type AgentToolExecuteResponse, type AgentToolsCatalogResponse } from '../types.js';
import type { CliConfig } from './config.js';
export declare class VigilbaseApiError extends Error {
    readonly status: number;
    readonly body: unknown;
    readonly retryAfterSec?: number;
    readonly code?: string;
    /** The server's sanitised explanation, set only for known vigilbase.com problem errors. */
    readonly reason?: string;
    /** CLI-authored remediation, never server text (see one-error-hints.ts). */
    readonly hint?: string;
    /**
     * The message is the CLI's own text, never the server's, so formatError prints it although the
     * error carries a body. Unmarked errors with a body print only a generic `Request failed`.
     */
    readonly isCliAuthored: boolean;
    /** The One tool run a failed scan recorded. */
    readonly toolRunId?: string;
    constructor(message: string, options: {
        status: number;
        body?: unknown;
        retryAfterSec?: number;
        code?: string;
        reason?: string;
        hint?: string;
        isCliAuthored?: boolean;
        toolRunId?: string;
    });
}
export declare function retryAfterSeconds(response: Response, body: unknown): number | undefined;
/** The versioned public tools API. The unversioned /api/agent/tools aliases sunset on 2027-09-01. */
export declare const PUBLIC_TOOLS_PATH = "/api/v1/agent/tools";
/**
 * Public (unauthenticated) vigilbase.com tools client.
 * Vigilbase One authenticated calls will use a separate client + device-auth tokens.
 */
export declare class VigilbaseClient {
    private readonly config;
    constructor(config: CliConfig);
    private get origin();
    private request;
    listTools(): Promise<AgentToolsCatalogResponse>;
    executeTool(toolName: string, target: string): Promise<AgentToolExecuteResponse>;
    fetchSkillMarkdown(skillUrl: string): Promise<string>;
    badgeUrl(domain: string, style?: 'default' | 'compact' | 'mini'): string;
}
