import * as platformClient from 'purecloud-platform-client-v2';
import { WebMessengerSession } from '@ovotech/genesys-web-messaging-tester';
type PreflightResult = Record<string, unknown>;
export interface PreflightError extends PreflightResult {
    reasonForError: string;
    errorType: 'missing-permissions' | 'unknown';
    ok: false;
}
export interface PreflightSuccess extends PreflightResult {
    ok: true;
}
export interface MessageIdToConvoIdClient {
    get(messageId: string): Promise<string | undefined>;
    preflightCheck(): Promise<PreflightSuccess | PreflightError>;
}
export declare function messageIdToConversationIdFactory({ convoApi, }: {
    convoApi: platformClient.ConversationsApi;
}): MessageIdToConvoIdClient;
interface ConversationIdGetterSuccess {
    successful: true;
    id: string;
}
export interface ConversationIdGetterFailure {
    successful: false;
    reason: 'not-received-message' | 'convo-id-not-in-response' | 'unknown-error';
    error?: unknown;
}
export type ConversationIdGetterResponse = ConversationIdGetterSuccess | ConversationIdGetterFailure;
export declare function createConversationIdGetter(session: WebMessengerSession, client: MessageIdToConvoIdClient): () => Promise<ConversationIdGetterResponse>;
export {};
