import type { RuntimeEventBus } from '../events/index.js';
import type { EmitterContext } from './index.js';
/** Emit SESSION_STARTED when a new session is created and initialising. */
export declare function emitSessionStarted(bus: RuntimeEventBus, ctx: EmitterContext, data: {
    sessionId: string;
    profileId: string;
    workingDir: string;
}): void;
/** Emit SESSION_LOADING when an existing session is being loaded from disk. */
export declare function emitSessionLoading(bus: RuntimeEventBus, ctx: EmitterContext, data: {
    sessionId: string;
    path: string;
}): void;
/** Emit SESSION_RESUMED when a previously saved session is being resumed. */
export declare function emitSessionResumed(bus: RuntimeEventBus, ctx: EmitterContext, data: {
    sessionId: string;
    turnCount: number;
}): void;
/** Emit SESSION_REPAIRING when session state is being repaired after a detected inconsistency. */
export declare function emitSessionRepairing(bus: RuntimeEventBus, ctx: EmitterContext, data: {
    sessionId: string;
    reason: string;
}): void;
/** Emit SESSION_RECONCILING when context messages are being reconciled with stored state. */
export declare function emitSessionReconciling(bus: RuntimeEventBus, ctx: EmitterContext, data: {
    sessionId: string;
    messageCount: number;
}): void;
/** Emit SESSION_READY when session is fully loaded and ready for input. */
export declare function emitSessionReady(bus: RuntimeEventBus, ctx: EmitterContext, data: {
    sessionId: string;
}): void;
/** Emit COMPANION_MESSAGE_RECEIVED when a companion-app follow-up message is received. */
export declare function emitCompanionMessageReceived(bus: RuntimeEventBus, ctx: EmitterContext, data: {
    sessionId: string;
    messageId: string;
    body: string;
    source: string;
    timestamp: number;
    metadata?: Readonly<Record<string, unknown>> | undefined;
}): void;
/** Emit SESSION_RECOVERY_FAILED when session recovery has failed unrecoverably. */
export declare function emitSessionRecoveryFailed(bus: RuntimeEventBus, ctx: EmitterContext, data: {
    sessionId: string;
    error: string;
}): void;
//# sourceMappingURL=session.d.ts.map