import type { AgentOpt, IGroupedActionDump } from './types';
import { ExecutionDump } from './types';
export interface PersistedSession {
    sessionId: string;
    platform: string;
    groupName: string;
    groupDescription?: string;
    sdkVersion: string;
    modelBriefs: string[];
    deviceType?: string;
    createdAt: number;
    updatedAt: number;
    executionCount: number;
    reportFilePath?: string;
}
interface EnsureSessionInput {
    sessionId: string;
    platform: string;
    groupName?: string;
    groupDescription?: string;
    sdkVersion?: string;
    modelBriefs?: string[];
    deviceType?: string;
}
export declare const SessionStore: {
    rootDir(): string;
    sessionDir(sessionId: string): string;
    agentFilePath(sessionId: string): string;
    executionBasePath(sessionId: string, order: number): string;
    reportDir(sessionId: string): string;
    load(sessionId: string): PersistedSession;
    save(session: PersistedSession): PersistedSession;
    ensureSession(input: EnsureSessionInput): PersistedSession;
    markReportGenerated(sessionId: string, reportFilePath: string): PersistedSession;
    /**
     * Allocate the next execution order number.
     * Note: not safe under concurrent writes from multiple processes.
     */
    nextOrder(sessionId: string): number;
    /**
     * Write (or overwrite) an execution at the given order slot.
     */
    persistExecution(sessionId: string, order: number, execution: ExecutionDump): void;
    buildSessionDump(sessionId: string): IGroupedActionDump;
};
export declare function createSessionAgentOptions(input: {
    sessionId?: string;
    platform: string;
    groupName?: string;
    groupDescription?: string;
}): Partial<AgentOpt>;
export {};
