/**
 * Shared status snapshot builders.
 *
 * Used by:
 * - DaemonStatusReporter (cloud)
 * - daemon-standalone HTTP/WS status responses
 */
import type { DaemonCdpManager } from '../cdp/manager.js';
import type { GitCompactSummary } from '../git/git-types.js';
import { type SessionEntryProfile } from './builders.js';
import type { ProviderState } from '../providers/provider-instance.js';
import type { AvailableProviderInfo, MachineInfo, RecentSessionBucket, StatusReportPayload } from '../shared-types.js';
export interface StatusSnapshotOptions {
    allStates: ProviderState[];
    cdpManagers: Map<string, DaemonCdpManager>;
    providerLoader: {
        getAll(): Array<{
            type: string;
            icon?: string;
            displayName?: string;
            category: 'ide' | 'extension' | 'cli' | 'acp';
        }>;
        getAvailableProviderInfos?: () => Array<{
            type: string;
            icon?: string;
            displayName?: string;
            category: 'ide' | 'extension' | 'cli' | 'acp';
            installed?: boolean;
            detectedPath?: string | null;
            enabled?: boolean;
            machineStatus?: 'disabled' | 'enabled_unchecked' | 'not_detected' | 'detected';
            lastDetection?: AvailableProviderInfo['lastDetection'];
            lastVerification?: AvailableProviderInfo['lastVerification'];
        }>;
    };
    detectedIdes: Array<{
        id: string;
        name?: string;
        displayName?: string;
        installed?: boolean;
        path?: string;
    }>;
    instanceId: string;
    version: string;
    timestamp?: number;
    p2p?: StatusReportPayload['p2p'];
    machineNickname?: string | null;
    profile?: SessionEntryProfile;
    getGitSummaryForWorkspace?: (workspace: string) => GitCompactSummary | null | undefined;
}
export type StatusSnapshot = StatusReportPayload;
export interface RecentReadDebugSnapshot {
    sessionId: string;
    providerType: string;
    status: string;
    inboxBucket: RecentSessionBucket;
    unread: boolean;
    lastSeenAt: number;
    completionMarker: string;
    seenCompletionMarker: string;
    lastUpdated: number;
    lastUsedAt: number;
    lastRole: string;
    messageUpdatedAt: number;
}
export declare function shouldEmitRecentReadDebugLog(cache: Map<string, string>, snapshot: RecentReadDebugSnapshot): boolean;
export declare function buildMachineInfo(profile?: 'full' | 'live' | 'metadata'): MachineInfo;
export { getSessionCurrentNotificationId, applySessionNotificationOverlay } from '../config/recent-activity.js';
export declare function getSessionCompletionMarker(session: {
    activeChat?: {
        messages?: Array<{
            role?: string;
            id?: string;
            index?: number;
            receivedAt?: number | string;
            timestamp?: number | string;
            _turnKey?: string;
        }> | null;
    } | null;
}): string;
export declare function buildStatusSnapshot(options: StatusSnapshotOptions): StatusSnapshot;
