/** 승인 화면이 읽는 한 줄 — 커널 낱말 그대로. 사람의 말은 표현계층이 만든다. */ export interface TwinNowAttention { id: string; kind: string; severity: string; anchor?: Record; params?: Record; timeStamp?: string; /** 커널이 권하는 방향 — 실행 가능한 것과 권고가 섞여 있다(`command` 가 있으면 자극이다). */ recommendedActions?: { code: string; command?: string; args?: unknown; }[]; /** 이 조치가 이것 때문에 올라왔나 — 규칙이 낸 것만 표시된다. */ isCause?: boolean; } export interface TwinNow { /** 심각한 순서로 몇 개. 전부가 아니다. */ attentions: TwinNowAttention[]; /** 지금 서 있는 것의 전체 수 — **잘랐으면 몇을 잘랐는지 알 수 있게.** */ total: number; /** 이 조치를 낸 근거가 아직 서 있나 — 규칙이 낸 것에만 값이 있다. */ causeStanding?: boolean; /** * 트윈의 상태를 못 읽었으면 그 이유. * * 빈 목록으로 답하지 않는다 — 「지금 아무 문제 없다」와 「트윈이 멈춰 있다」는 다른 사실이고, * 승인하는 사람에게 그 차이가 크다. */ unavailable?: string; } /** 승인 화면에 몇 개까지 싣나 — 사람이 읽는 수. 스물여섯 줄은 아무도 안 읽는다. */ export declare const TWIN_NOW_LIMIT = 5; /** * 이 트윈이 지금 무엇을 보고 있나 — 결재선 입력에 실어 보낼 모양으로. * * `causeRef` 를 주면 그것이 아직 서 있는지도 함께 답한다. 승인하는 사람이 물어야 하는 것 중 가장 중요한 * 것이 「지금도 그런가」이고, 조건이 사라진 뒤 승인하면 필요 없는 것을 만든다. */ export declare function twinNow(domainId: string, instanceId: string, causeRef?: string, limit?: number): TwinNow;