export type Socket = {
    on: (event: string, listener: (data?: unknown) => void) => void;
    off: (event: string) => void;
    disconnect: () => void;
};
export type InitializeSessionBodyContent = {
    applicationIdentifier: string;
    subscriberId: string;
    hmacHash: string | null;
    deviceId: string;
    language: string;
};
export declare enum StepTypeEnum {
    IN_APP = "in_app",
    EMAIL = "email",
    SMS = "sms",
    CHAT = "chat",
    PUSH = "push",
    DIGEST = "digest",
    TRIGGER = "trigger",
    DELAY = "delay"
}
export type MessageTemplateContentType = 'editor' | 'customHtml';
export declare enum EmailBlockTypeEnum {
    BUTTON = "button",
    TEXT = "text"
}
export declare enum TextAlignEnum {
    CENTER = "center",
    LEFT = "left",
    RIGHT = "right"
}
export interface IEmailBlock {
    type: EmailBlockTypeEnum;
    content: string;
    url?: string;
    styles?: {
        textAlign?: TextAlignEnum;
    };
}
export declare enum TemplateVariableTypeEnum {
    STRING = "String",
    ARRAY = "Array",
    BOOLEAN = "Boolean"
}
export interface ITemplateVariable {
    type: TemplateVariableTypeEnum;
    name: string;
    required?: boolean;
    defaultValue?: string | boolean;
}
export declare enum ChannelCTATypeEnum {
    REDIRECT = "redirect"
}
export declare enum ActorTypeEnum {
    NONE = "none",
    USER = "user",
    SYSTEM_ICON = "system_icon",
    SYSTEM_CUSTOM = "system_custom"
}
export type Notification = {
    id?: string;
    subject?: string;
    name?: string;
    title?: string;
    type: StepTypeEnum;
    contentType?: MessageTemplateContentType;
    content: string | IEmailBlock[];
    seen: boolean;
    read: boolean;
    variables?: ITemplateVariable[];
    cta?: {
        type: ChannelCTATypeEnum;
        data: any;
        action?: any;
    };
    _feedId?: string;
    _layoutId?: string;
    active?: boolean;
    preheader?: string;
    senderName?: string;
    actor?: {
        type: ActorTypeEnum;
        data: string | null;
    };
};
