import { type Locale } from '../../i18n/index.js';
import type { WaitCreatedEvent } from '../../workflows/events/types.js';
import type { Snapshot } from '../../workflows/events/replay.js';
export declare const WORKFLOW_APPROVE_ACTION = "wf_approve";
export declare const WORKFLOW_REJECT_ACTION = "wf_reject";
export declare const WORKFLOW_CANCEL_ACTION = "wf_cancel";
export declare const WORKFLOW_COMMENT_FIELD = "wf_comment";
export declare const WORKFLOW_APPROVAL_FORM = "wf_approval_form";
export type WorkflowApprovalResolutionKind = 'approved' | 'rejected' | 'cancelled';
export type WorkflowApprovalCardResolution = {
    kind: WorkflowApprovalResolutionKind;
    by: string;
    comment?: string;
};
export type WorkflowApprovalCardOptions = {
    webDetailUrl?: string;
    cardNonce?: string;
    promptMaxChars?: number;
    /** When present, render a frozen "已通过 / 已拒绝 / 已取消" card — no form,
     *  no clickable approve/reject/cancel buttons — so the same surface that
     *  triggered the action can't be re-submitted from a stale UI. */
    resolution?: WorkflowApprovalCardResolution;
};
export type WorkflowApprovalCardContext = {
    runId: string;
    workflowId?: string;
    revisionId?: string;
    nodeId: string;
    activityId: string;
    attemptId: string;
    deadlineAt?: number;
    /** Body text for the card.  Either the full inline prompt (small case)
     *  or the inline promptPreview (large case).  Cards must NEVER read
     *  promptRef blob files — see `hasFullBehindRef`. */
    prompt: string;
    /** True when the upstream waitCreated event spilled its prompt to a
     *  blob (promptRef set).  Card-builder uses this to render a hint
     *  pointing the approver to the dashboard for the complete text. */
    hasFullBehindRef: boolean;
    cardNonce: string;
    webDetailUrl: string;
};
export declare function workflowApprovalCardNonce(runId: string, activityId: string, attemptId: string): string;
export declare function workflowRunDetailUrl(runId: string): string;
export declare function getWorkflowApprovalCardContext(event: WaitCreatedEvent, snapshot: Snapshot, opts?: WorkflowApprovalCardOptions): WorkflowApprovalCardContext;
export declare function buildWorkflowApprovalCard(event: WaitCreatedEvent, snapshot: Snapshot, opts?: WorkflowApprovalCardOptions, locale?: Locale): string;
//# sourceMappingURL=workflow-cards.d.ts.map