/**
 * The frozen Buzz setup preflight contract (`run402.buzz-doctor.v1`) and the
 * released Buzz CLI v0.5.2 capability fixture `r.buzz.doctor()` probes
 * against. The objects below are the published fixtures verbatim
 * (`buzz/fixtures/run402-buzz-doctor-v1-contract.json` and
 * `buzz/fixtures/buzz-v0.5.2-cli-capabilities.json`, shipped with the
 * `run402-buzz` skill); `buzz-doctor-contract.test.ts` fails when they drift.
 * The validators are what a consumer of a doctor report (the Buzz setup
 * helper) applies before trusting it.
 */
/** `run402-buzz-doctor-v1-contract.json`, verbatim. */
export declare const BUZZ_DOCTOR_CONTRACT: {
    readonly schema_version: 1;
    readonly contract_id: "run402.buzz-doctor.v1";
    readonly mode: "buzz";
    readonly canonical_invocation: readonly ["run402", "--wallet", "<profile>", "doctor", "--buzz", "--buzz-agent", "<npub-or-hex>"];
    readonly flags: {
        readonly mode: "--buzz";
        readonly agent: "--buzz-agent";
        readonly profile: "--wallet";
    };
    readonly check_order: readonly ["session_shell", "node_runtime", "run402_cli", "buzz_cli", "buzz_agent_target", "run402_api", "run402_console", "buzz_relay", "wallet_profile"];
    readonly statuses: readonly ["ok", "warning", "blocked"];
    readonly codes_by_check: {
        readonly session_shell: readonly ["BUZZ_PREFLIGHT_SHELL_UNAVAILABLE"];
        readonly node_runtime: readonly ["BUZZ_PREFLIGHT_NODE_UNAVAILABLE", "BUZZ_PREFLIGHT_NODE_INCOMPATIBLE"];
        readonly run402_cli: readonly ["BUZZ_PREFLIGHT_RUN402_UNAVAILABLE", "BUZZ_PREFLIGHT_RUN402_INCOMPATIBLE", "BUZZ_PREFLIGHT_RUN402_UPDATE_AVAILABLE"];
        readonly buzz_cli: readonly ["BUZZ_PREFLIGHT_BUZZ_CLI_UNAVAILABLE", "BUZZ_PREFLIGHT_BUZZ_CLI_INCOMPATIBLE"];
        readonly buzz_agent_target: readonly ["BUZZ_AGENT_TARGET_REQUIRED", "BUZZ_AGENT_TARGET_UNVERIFIED", "BUZZ_AGENT_TARGET_MISMATCH"];
        readonly run402_api: readonly ["BUZZ_PREFLIGHT_API_UNREACHABLE"];
        readonly run402_console: readonly ["BUZZ_PREFLIGHT_CONSOLE_UNREACHABLE"];
        readonly buzz_relay: readonly ["BUZZ_PREFLIGHT_RELAY_UNSAFE", "BUZZ_PREFLIGHT_RELAY_UNREACHABLE"];
        readonly wallet_profile: readonly ["BUZZ_PREFLIGHT_WALLET_PROFILE_REQUIRED", "BUZZ_PREFLIGHT_WALLET_PROFILE_NOT_FOUND", "BUZZ_PREFLIGHT_WALLET_PROFILE_MISMATCH"];
    };
    readonly next_action: {
        readonly required_fields: readonly ["type", "surface", "command", "why", "safe_to_auto_execute", "requires_approval", "destructive", "idempotent", "spend_impact"];
        readonly surfaces: readonly ["shell", "buzz_chat", "buzz_settings"];
        readonly shell_required_fields: readonly ["argv"];
        readonly non_shell_forbidden_fields: readonly ["argv", "cwd"];
        readonly cardinality_per_actionable_check: 1;
    };
    readonly exit_behavior: {
        readonly passed_or_warning_only: 0;
        readonly completed_with_blocked_checks: 1;
        readonly usage_error: 1;
        readonly completed_report_stream: "stdout";
        readonly usage_error_stream: "stderr";
    };
    readonly freshness: {
        readonly max_age_seconds: 60;
        readonly binding_fields: readonly ["contract_id", "expected_subject_hex", "wallet_profile", "node_executable", "run402_executable", "relay_origin"];
    };
    readonly setup_rejection_codes: readonly ["BUZZ_PREFLIGHT_REPORT_INVALID", "BUZZ_PREFLIGHT_REPORT_STALE", "BUZZ_PREFLIGHT_REPORT_MISMATCH"];
    readonly zero_mutation: {
        readonly mutation_state: "not_started";
        readonly forbidden: readonly ["buzz_event_publish", "buzz_arbitrary_sign", "run402_profile_create_or_select", "run402_wallet_create", "run402_identity_link_mutation", "run402_faucet", "run402_tier_mutation", "run402_project_mutation", "run402_deploy"];
        readonly allowed_lossy_local_writes: readonly ["cli_update_cache", "redacted_diagnostic_queue"];
    };
};
/** `buzz-v0.5.2-cli-capabilities.json`, verbatim. */
export declare const BUZZ_CLI_CAPABILITIES: {
    readonly fixture_version: 1;
    readonly fixture_id: "buzz-cli-v0.5.2-capabilities";
    readonly purpose: "released_buzz_cli_capability_first_compatibility";
    readonly buzz_release: {
        readonly version: "0.5.2";
        readonly release_tag: "v0.5.2";
        readonly release_tag_commit: "3e48f1b2365d326ee1c9582448d86a99b44ecd5d";
        readonly run402_change_required: false;
    };
    readonly help_probes: readonly [{
        readonly argv: readonly ["buzz", "--help"];
        readonly exit_code: 0;
        readonly stdout_contains: readonly ["Buzz CLI — interact with a Buzz relay", "users", "social", "Errors are JSON on stderr"];
    }, {
        readonly argv: readonly ["buzz", "users", "get", "--help"];
        readonly exit_code: 0;
        readonly stdout_contains: readonly ["users get [OPTIONS]", "--pubkey", "Omit for your own profile"];
    }, {
        readonly argv: readonly ["buzz", "social", "publish", "--help"];
        readonly exit_code: 0;
        readonly stdout_contains: readonly ["social publish [OPTIONS]", "--content"];
    }, {
        readonly argv: readonly ["buzz", "social", "event", "--help"];
        readonly exit_code: 0;
        readonly stdout_contains: readonly ["social event --event"];
    }];
    readonly version_probe: {
        readonly argv: readonly ["buzz", "--version"];
        readonly supported: false;
        readonly exit_code: 1;
        readonly stderr_json: {
            readonly error: "user_error";
            readonly retryable: false;
        };
        readonly message_contains: "unexpected argument '--version'";
    };
    readonly json_contract: {
        readonly default_output_format: "json";
        readonly users_get_success_stdout: {
            readonly type: "array";
            readonly empty_array_means: "public_self_profile_unverified";
            readonly profile_pubkey_field: "pubkey";
        };
        readonly social_event_success_stdout: {
            readonly type: "array";
            readonly event_pubkey_field: "pubkey";
        };
        readonly error_stderr: {
            readonly type: "object";
            readonly required_fields: readonly ["error", "message", "retryable"];
            readonly stdout_is_empty: true;
        };
    };
    readonly managed_sidecar: {
        readonly distribution: "bundled_with_buzz_desktop";
        readonly session_discovery: "managed_agent_path";
        readonly public_package_manager_install: false;
        readonly repair_surface: "buzz_settings";
        readonly repair_destination: "Buzz Desktop > Settings > Updates";
        readonly repair_instruction: "Open Buzz Desktop > Settings > Updates, install the available Buzz update or reinstall Buzz Desktop if no update is offered, then restart this agent and rerun setup.";
    };
    readonly public_self_observation: {
        readonly argv: readonly ["buzz", "users", "get"];
        readonly requires_private_key_value_inspection: false;
        readonly empty_or_malformed_result: "BUZZ_AGENT_TARGET_UNVERIFIED";
    };
    readonly write_surface_policy: {
        readonly capability_probes_use_help_only: true;
        readonly publish_is_never_invoked_by_doctor: true;
        readonly event_read_requires_explicit_event_id_and_is_not_used_for_self_discovery: true;
    };
};
export declare const BUZZ_DOCTOR_CONTRACT_ID: string;
export declare const BUZZ_DOCTOR_CHECK_ORDER: readonly string[];
export declare const BUZZ_DOCTOR_STATUSES: ReadonlySet<string>;
export declare const BUZZ_DOCTOR_ACTION_SURFACES: ReadonlySet<string>;
export declare const BUZZ_DOCTOR_MAX_AGE_MS: number;
/** The reason an action violates the contract, or null. */
export declare function validateBuzzDoctorAction(action: any, { surface }?: {
    surface?: string;
}): string | null;
/** Whether a report honours the contract and is bound to the expected session, fresh. */
export declare function validateBuzzDoctorReport(report: any, { expectedSubjectHex, walletProfile, nodeExecutable, run402Executable, relayOrigin, now, }?: {
    expectedSubjectHex?: string | null;
    walletProfile?: string;
    nodeExecutable?: string | null;
    run402Executable?: string | null;
    relayOrigin?: string | null;
    now?: number;
}): {
    valid: boolean;
    reason: string | null;
};
//# sourceMappingURL=buzz-doctor-contract.d.ts.map