import type { ChatService, ResolvedConversation } from "./chat/core/config-types.ts";
import type { InboundMessageInput } from "./chat/core/runtime-types.ts";
export type GatewayChatType = "dm" | "group" | "channel" | "thread";
export interface GatewaySessionSource {
    service: ChatService;
    accountId: string;
    channelKey: string;
    chatId: string;
    chatName?: string;
    chatType: GatewayChatType;
    userId?: string;
    userName?: string;
    threadId?: string;
    parentChatId?: string;
    messageId?: string;
}
export interface GatewaySessionKeyOptions {
    threadSessionsPerUser?: boolean;
    groupSessionsPerUser?: boolean;
    channelSessionsPerUser?: boolean;
}
export declare function buildGatewaySessionSource(conversation: ResolvedConversation, input?: InboundMessageInput): GatewaySessionSource;
export declare function buildGatewaySessionKey(source: GatewaySessionSource, options?: GatewaySessionKeyOptions): string;
export declare function formatGatewaySessionSource(source: GatewaySessionSource): string;
//# sourceMappingURL=session.d.ts.map