import type { NeotomaApiClient } from "../shared/api_client.js";
/**
 * CLI implementation for `neotoma issues` commands.
 *
 * Subcommands:
 *   create  -- Submit issue (HTTP POST /issues/submit; same orchestration as MCP submit_issue)
 *   message -- Append thread message (POST /issues/add_message)
 *   status  -- Read issue + thread (POST /issues/status)
 *   list    -- List issues from GitHub (no MCP twin)
 *   sync    -- Mirror ingest (POST /issues/sync; same as MCP sync_issues)
 *   config  -- View/set issues configuration
 *   auth    -- Trigger gh CLI auth flow
 */
export interface IssuesCreateOpts {
    title: string;
    body: string;
    labels?: string;
    /** `public` creates a GitHub issue when possible; `private` stores Neotoma-only (no GitHub create). */
    visibility?: "public" | "private";
    /** Deprecated alias for `visibility: "private"`; retained for one minor release. */
    advisory?: boolean;
    reporter_git_sha?: string;
    reporter_app_version?: string;
    reporter_git_ref?: string;
    reporter_channel?: string;
    reporter_ci_run_id?: string;
    json?: boolean;
}
export interface IssuesMessageOpts {
    body: string;
    json?: boolean;
    /** Neotoma `issue` entity id (preferred). */
    entity_id?: string;
    /** GitHub issue number in configured repo. */
    issue_number?: number;
    /** Guest token for operator remote append when the local snapshot does not carry it. */
    guest_access_token?: string;
    reporter_git_sha?: string;
    reporter_app_version?: string;
    reporter_git_ref?: string;
    reporter_channel?: string;
    reporter_ci_run_id?: string;
}
export interface IssuesStatusOpts {
    entity_id?: string;
    issue_number?: number;
    skip_sync?: boolean;
    guest_access_token?: string;
    json?: boolean;
}
export declare const ADVISORY_VISIBILITY_DEPRECATION = "visibility 'advisory' is deprecated; use 'private' instead.";
export interface IssuesListOpts {
    status?: "open" | "closed" | "all";
    labels?: string;
    since?: string;
    noSync?: boolean;
    json?: boolean;
}
export interface IssuesSyncOpts {
    since?: string;
    state?: "open" | "closed" | "all";
    labels?: string;
    json?: boolean;
}
export interface IssuesConfigOpts {
    repo?: string;
    mode?: "proactive" | "consent" | "off";
    authorAlias?: string;
    clearAuthorAlias?: boolean;
    json?: boolean;
}
export declare function issuesCreate(opts: IssuesCreateOpts, api: NeotomaApiClient): Promise<void>;
export declare function issuesMessage(opts: IssuesMessageOpts, api: NeotomaApiClient): Promise<void>;
export declare function issuesStatus(opts: IssuesStatusOpts, api: NeotomaApiClient): Promise<void>;
export declare function issuesList(opts: IssuesListOpts, api: NeotomaApiClient): Promise<void>;
export declare function issuesSync(opts: IssuesSyncOpts, api: NeotomaApiClient): Promise<void>;
export declare function issuesConfig(opts: IssuesConfigOpts): Promise<void>;
export declare function issuesAuth(opts: {
    json?: boolean;
}): Promise<void>;
//# sourceMappingURL=issues.d.ts.map