/**
 * Status Builders — shared conversion functions for ProviderState → ManagedEntry
 *
 * Used by:
 *   - daemon-standalone (StandaloneServer.getStatus)
 *   - DaemonStatusReporter
 *
 * Consolidates ProviderState→ManagedEntry mapping logic.
 */
import type { DaemonCdpManager } from '../cdp/manager.js';
import type { GitCompactSummary } from '../git/git-types.js';
import type { SessionEntry } from '../shared-types.js';
import type { ProviderState } from '../providers/provider-instance.js';
/**
 * A coordinator-spawned worker session that mesh policy launched hidden. This is
 * the daemon-side equivalent of the web `shouldAutoHideMeshConversation` predicate:
 * these sessions should default to muted+hidden in the user dashboard (the user
 * interacts through the ONE coordinator session, not each worker), while the
 * coordinator↔worker mesh data/completion path (mesh-event-forwarding) is
 * unaffected.
 */
export declare function isCoordinatorSpawnedHiddenWorker(settings: Record<string, any> | undefined): boolean;
/**
 * A session is surface-hidden (collapsed from the user's inbox/notifications) when
 * mesh policy spawned it hidden, OR when a coordinator-spawned worker defaults
 * hidden, OR when the user manually hid it (userHidden). userHidden === false is an
 * explicit un-hide that overrides the policy/worker default until daemon restart.
 */
export declare function resolveSurfaceHidden(settings: Record<string, any> | undefined): boolean;
/**
 * A session is muted (attention side-effects suppressed, but still shown in the
 * list) when the user muted it, OR a coordinator-spawned worker defaults muted.
 * userMuted === false is an explicit un-mute overriding the worker default.
 */
export declare function resolveMuted(settings: Record<string, any> | undefined): boolean;
/**
 * Pure resolver for a mesh-spawned worker session's dashboard hide+mute state,
 * shared by the standalone/local `buildSessionEntries` path (via the wrappers
 * above, which read the values off a full settings object) AND the cloud daemon's
 * synthetic remote-mesh-session mirror path in daemon-cloud
 * (`appendMeshOwnedSessionsToSnapshot`), which has no full ProviderState — only
 * the mesh attribution fields. Keeping both paths on this ONE helper guarantees a
 * remote worker surfaced on the cloud dashboard hides+mutes identically to a local
 * worker on standalone. A valid `userHidden`/`userMuted` boolean is an explicit
 * per-session override and wins over the policy/worker default.
 */
export declare function resolveSpawnedSessionHideMute(input: {
    launchedByCoordinator?: unknown;
    meshNodeFor?: unknown;
    spawnedSessionVisibility?: unknown;
    userHidden?: unknown;
    userMuted?: unknown;
}): {
    surfaceHidden: boolean;
    muted: boolean;
};
export type SessionEntryProfile = 'full' | 'live' | 'metadata';
export interface SessionEntryBuildOptions {
    profile?: SessionEntryProfile;
    getGitSummaryForWorkspace?: (workspace: string) => GitCompactSummary | null | undefined;
}
/**
 * Find a CDP manager by key. Supports single-window (`cursor`) and full multi-window keys (`cursor_<targetId>`).
 *
 * Lookup order:
 *   1. Exact match when connected
 *   2. If key has no multi-window suffix: at most **one** connected manager whose key starts with `key_`
 *   3. If two or more windows share that prefix → **null** (ambiguous — pass full managerKey from `GET /api/cdp/targets`)
 */
export declare function findCdpManager(cdpManagers: Map<string, DaemonCdpManager>, key: string): DaemonCdpManager | null;
/**
 * Check if any CDP manager matches the given key (exact or prefix).
 */
export declare function hasCdpManager(cdpManagers: Map<string, DaemonCdpManager>, key: string): boolean;
/**
 * Check if any CDP manager matching the key is connected.
 */
export declare function isCdpConnected(cdpManagers: Map<string, DaemonCdpManager>, key: string): boolean;
export declare function buildSessionEntries(allStates: ProviderState[], cdpManagers: Map<string, DaemonCdpManager>, options?: SessionEntryBuildOptions): SessionEntry[];
