import { type SessionKanbanColumn } from '../core/session-board.js';
export interface TeamBoardEntry {
    column: SessionKanbanColumn;
    position: number;
    updatedAt: number;
}
/** 成员部署上报的会话裁剪行——字段白名单，不带终端端口/token/工作目录。 */
export interface ReportedTeamSession {
    sessionId: string;
    botName: string;
    cliId: string;
    status: string;
    title?: string;
    chatId: string;
    scope?: string;
    adopt?: boolean;
    lastMessageAt: number;
}
export interface DeploymentReport {
    deploymentId: string;
    deploymentName: string;
    reportedAt: number;
    sessions: ReportedTeamSession[];
}
/** 单部署单次上报的会话数上限——防失控 payload 撑爆 host 存储。 */
export declare const TEAM_REPORT_MAX_SESSIONS = 200;
export declare function readTeamBoard(dataDir: string, teamId: string): Record<string, TeamBoardEntry>;
export declare function setTeamBoardEntry(dataDir: string, teamId: string, sessionId: string, column: unknown, position: unknown, now?: number): TeamBoardEntry | null;
/** 入站裁剪行白名单（host 不信任成员 payload 的多余字段/超长值）。 */
export declare function sanitizeReportedSessions(raw: unknown): ReportedTeamSession[];
export declare function recordTeamSessions(dataDir: string, teamId: string, deploymentId: string, deploymentName: string, sessions: ReportedTeamSession[], now?: number): void;
export declare function listTeamReports(dataDir: string, teamId: string): DeploymentReport[];
//# sourceMappingURL=team-board-store.d.ts.map