import { RequestContext } from '../types';
export * from 'messaging-api-viber/dist/ViberTypes';
export { ViberConnectorOptions } from './ViberConnector';
export declare type ViberUser = {
    id: string;
    name: string;
    avatar: string;
    country: string;
    language: string;
    apiVersion: number;
};
export declare type SubscribedEvent = {
    event: 'subscribed';
    timestamp: number;
    user: ViberUser;
    messageToken: number;
};
export declare type UnsubscribedEvent = {
    event: 'unsubscribed';
    timestamp: number;
    userId: string;
    messageToken: number;
};
export declare type ConversationStartedEvent = {
    event: 'conversation_started';
    timestamp: number;
    messageToken: number;
    type: 'open';
    context: string;
    user: ViberUser;
    subscribed: false;
};
export declare type DeliveredEvent = {
    event: 'delivered';
    timestamp: number;
    messageToken: number;
    userId: string;
};
export declare type SeenEvent = {
    event: 'seen';
    timestamp: number;
    messageToken: number;
    userId: string;
};
export declare type FailedEvent = {
    event: 'failed';
    timestamp: number;
    messageToken: number;
    userId: string;
    desc: string;
};
export declare type ViberMessage = {
    type: 'text' | 'picture' | 'video' | 'file' | 'sticker' | 'contact' | 'url' | 'location';
    text?: string;
    media?: string;
    location?: {
        lat: string;
        lot: string;
    };
    contact?: {
        name: string;
        phoneNumber: string;
    };
    trackingData?: string;
    fileName?: string;
    fileSize?: number;
    duration?: number;
    stickerId?: number;
};
export declare type MessageEvent = {
    event: 'message';
    timestamp: number;
    messageToken: number;
    sender: ViberUser;
    message: ViberMessage;
};
export declare type ViberRawEvent = SubscribedEvent | UnsubscribedEvent | ConversationStartedEvent | DeliveredEvent | SeenEvent | FailedEvent | MessageEvent;
export declare type ViberRequestBody = ViberRawEvent;
export declare type ViberRequestContext = RequestContext<ViberRequestBody, {
    'x-viber-content-signature'?: string;
}>;
//# sourceMappingURL=ViberTypes.d.ts.map