import type { Session, Message, CreateSessionRequest, SendMessageRequest, SendMessageResponse, UpdateSessionRequest, SessionsPage } from '../../types/api';
export declare const sessionsMixin: {
    getSessions(): Promise<Session[]>;
    getSessionsPage(params?: {
        limit?: number;
        offset?: number;
        sessionType?: "otto";
    }): Promise<SessionsPage>;
    createSession(data: CreateSessionRequest): Promise<Session>;
    getSession(sessionId: string): Promise<Session>;
    updateSession(sessionId: string, data: UpdateSessionRequest): Promise<Session>;
    markSessionViewed(sessionId: string): Promise<Session>;
    deleteSession(sessionId: string): Promise<{
        success: boolean;
    }>;
    createHandoff(sessionId: string): Promise<{
        session: Session;
        sessionId: string;
        sourceSessionId: string;
        message: string;
    }>;
    abortSession(sessionId: string): Promise<{
        success: boolean;
    }>;
    abortMessage(sessionId: string, _messageId: string): Promise<{
        success: boolean;
        wasRunning: boolean;
        messageId: string;
    }>;
    getQueueState(sessionId: string): Promise<{
        currentMessageId: string | null;
        queuedMessages: Array<{
            messageId: string;
            position: number;
        }>;
        isRunning: boolean;
    }>;
    removeFromQueue(sessionId: string, messageId: string): Promise<{
        success: boolean;
        removed: boolean;
        wasQueued?: boolean;
        wasRunning?: boolean;
    }>;
    sendQueuedMessageNow(sessionId: string, messageId: string): Promise<{
        success: boolean;
        promoted: boolean;
        wasQueued?: boolean;
        wasRunning?: boolean;
        preemptedMessageId?: string | null;
    }>;
    getMessages(sessionId: string): Promise<Message[]>;
    sendMessage(sessionId: string, data: SendMessageRequest): Promise<SendMessageResponse>;
    getStreamUrl(sessionId: string): string;
    retryMessage(sessionId: string, messageId: string): Promise<{
        success: boolean;
        messageId: string;
    }>;
};
//# sourceMappingURL=sessions.d.ts.map