export { classifyLinearMentionEvent, isAgentSessionEvent, } from './event-types.js';
export type { AgentActivity, AgentActivityKind, AgentSessionEvent, AgentSessionEventType, AgentSessionTrigger, AssignmentEvent, CommentMentionEvent, IssueMentionEvent, LinearMentionEvent, } from './event-types.js';
export { buildLinearWorkflow, } from './workflow-builder.js';
export type { BuildLinearWorkflowInput, BuildLinearWorkflowResult, } from './workflow-builder.js';
export { linearStatusSummary, renderLinearStatus, } from './status.js';
export type { LinearReadinessSnapshot, LinearStatusSummary, } from './status.js';
export { getLinearConnectGuidance, renderLinearConnectGuidance, } from './connect.js';
import type { AgentActivity, AgentSessionEvent } from './event-types.js';
import { type BuildLinearWorkflowResult } from './workflow-builder.js';
import type { SessionEndReason } from '../../cloud/api/linear-agent-types.js';
export type LinearMentionHandleStatus = 'completed' | 'completed_no_changes' | 'failed' | 'ignored';
export interface LinearMentionHandleInput {
    payload: unknown;
    rawBody?: string;
    headers?: Record<string, string | string[] | undefined>;
    repoTarget?: {
        owner: string;
        repo: string;
        defaultBranch: string;
    };
}
export interface LinearMentionHandleResult {
    status: LinearMentionHandleStatus;
    sessionId?: string;
    reason: SessionEndReason;
}
export interface LinearMentionDeps {
    signatureVerifier: (input: LinearMentionHandleInput) => boolean | Promise<boolean>;
    dedupStore: {
        markIfAbsent: (webhookId: string) => boolean | Promise<boolean>;
    };
    githubInstallProbe: (event: AgentSessionEvent) => boolean | Promise<boolean>;
    agentRegistry: {
        list: (query: {
            scope: string;
            actor: AgentSessionEvent['actor'];
        }) => Promise<ReadonlyArray<{
            id: string;
            name: string;
            capabilities: string[];
        }>>;
    };
    workflowRunner: (workflow: BuildLinearWorkflowResult, event: AgentSessionEvent) => Promise<{
        status: Exclude<LinearMentionHandleStatus, 'ignored'>;
        prUrl?: string;
        summary?: string;
    }>;
    activityWriter: {
        write: (activity: AgentActivity) => void | Promise<void>;
        endSession: (params: {
            sessionId: string;
            reason: SessionEndReason;
        }) => void | Promise<void>;
    };
    clock?: () => Date;
    logger?: {
        warn?: (message: string, metadata?: Record<string, unknown>) => void;
    };
}
export declare function handleLinearMention(input: LinearMentionHandleInput, deps: LinearMentionDeps): Promise<LinearMentionHandleResult>;
