import type { TestAttemptSession } from "../TestSession.js";
export interface PieBackendActivityItemRef {
    identifier?: string;
    item?: {
        id?: string;
        identifier?: string;
    };
}
export interface PieBackendActivityDefinition {
    id?: string;
    identifier?: string;
    assessmentId?: string;
    assessmentItemRefs?: PieBackendActivityItemRef[];
}
export interface PieBackendActivitySession {
    id?: string;
    activitySessionId?: string;
    startedAt?: string;
    updatedAt?: string;
    completedAt?: string;
    currentItemIndex?: number;
    currentSectionIdentifier?: string;
    visitedItemIdentifiers?: string[];
    itemSessions?: Record<string, unknown>;
}
export interface MapActivityToTestAttemptSessionArgs {
    activityDefinition?: PieBackendActivityDefinition | null;
    activitySession?: PieBackendActivitySession | null;
    itemRefs?: PieBackendActivityItemRef[];
    itemSessionsByItemIdentifier?: Record<string, unknown>;
    assessmentId?: string;
    testAttemptSessionIdentifier?: string;
}
export interface ActivitySessionPatchPayload {
    activitySession: {
        id: string;
        startedAt?: string;
        updatedAt?: string;
        completedAt?: string;
        currentItemIndex: number;
        currentSectionIdentifier?: string;
        visitedItemIdentifiers: string[];
        itemSessions: Record<string, unknown>;
    };
}
export declare function mapActivityToTestAttemptSession(args: MapActivityToTestAttemptSessionArgs): TestAttemptSession;
export declare function toItemSessionsRecord(testAttemptSession: TestAttemptSession): Record<string, unknown>;
export declare function buildActivitySessionPatchFromTestAttemptSession(testAttemptSession: TestAttemptSession): ActivitySessionPatchPayload;
export declare function buildActivitySessionItemUpdate(testAttemptSession: TestAttemptSession, itemIdentifier: string): ActivitySessionPatchPayload;
