export default interface User {
    version: number;
    lazyUpdateProfile?: boolean;
    created?: Date;
    firstName?: string;
    lastName?: string;
    fullName?: string;
    gender?: string;
    locality?: {
        address?: {
            address1?: string;
            address2?: string;
            district?: string;
            city?: string;
            region?: string;
            postalCode?: string;
            postalAreaCode?: string;
            country?: string;
        };
        countryCode?: string;
        language?: string;
        lat?: number;
        lon?: number;
        easting?: number;
        northing?: number;
        radius?: number;
        name?: string;
        uprn?: string;
        isPostcodeUpdated?: boolean;
        postcodeConfirmed?: boolean;
        setByForm?: boolean;
        rejected?: boolean;
    };
    mobileNumber?: string;
    homeNumber?: string;
    client: string;
    lastActive?: Date;
    activeChannel?: string;
    onBrowserCall?: boolean;
    intervention?: {
        id: string;
        started?: Date;
        agent?: string;
        channel?: string;
        userChannel?: string;
        department?: string;
        awaitingResponse?: boolean;
    };
    session: {
        status: string;
        forms: {
            formFieldCallback?: {
                args: any;
            };
            inputFailures?: number;
            localityBuilder?: {
                address?: {
                    address1?: string;
                    address2?: string;
                    district?: string;
                    city?: string;
                    region?: string;
                    postalCode?: string;
                    postalAreaCode?: string;
                    country?: string;
                };
                countryCode?: string;
                language?: string;
                lat?: number;
                lon?: number;
                easting?: number;
                northing?: number;
                radius?: number;
                name?: string;
                uprn?: string;
                isPostcodeUpdated?: boolean;
                postcodeConfirmed?: boolean;
                setByForm?: boolean;
                rejected?: boolean;
            };
            quoteType?: {
                electricity?: boolean;
                gas?: boolean;
            };
        };
        nextInterventionChannel?: string;
        nextInterventionDepartmentId?: string;
        onReply?: {
            blockId: string;
            args?: any;
        };
        onReplyChoice?: Array<{
            title?: {
                any?: string;
                en?: string;
                nl?: string;
                cy?: string;
                it?: string;
            };
            selectedTitle?: string;
            action: {
                type: string;
                value?: any;
            };
            profile?: any;
            userStatus?: string;
            formField?: boolean;
            session?: any;
            functionArgs?: any;
            persistentMenu?: boolean;
            selectBlock?: {
                id: string;
            };
        }>;
        apiTokens: Array<{
            token: string;
            created: Date;
            ttl: number;
        }>;
        intentMap?: any;
        userSelectedLang?: string;
        variables?: any;
    };
    profile: {
        common?: {
            gdpr?: boolean;
            rating?: number;
            feedback?: string;
            clientDefined: any;
            locality?: {
                address?: {
                    address1?: string;
                    address2?: string;
                    district?: string;
                    city?: string;
                    region?: string;
                    postalCode?: string;
                    postalAreaCode?: string;
                    country?: string;
                };
                countryCode?: string;
                language?: string;
                lat?: number;
                lon?: number;
                easting?: number;
                northing?: number;
                radius?: number;
                name?: string;
                uprn?: string;
                isPostcodeUpdated?: boolean;
                postcodeConfirmed?: boolean;
                setByForm?: boolean;
                rejected?: boolean;
            };
            fbAdId?: string;
            unsubscribed?: boolean;
            email?: string;
            averageSentiment?: {
                label: string;
                score: number;
                history: Array<{
                    eventId: string;
                    calculatedScore: number;
                    eventCreated: Date;
                }>;
            };
            formSetFirstName?: boolean;
            formSetLastName?: boolean;
            dynamicFormFields: any;
        };
        clients?: Record<string, unknown>;
    };
    channels: {
        messenger?: {
            avatar?: string;
            id?: string;
        };
        microsoft?: {
            id?: string;
            tenantId?: string;
            aadId?: string;
            conversationRef?: {
                activityId?: string;
                user?: any;
                bot?: any;
                conversation?: any;
                locale?: string;
                channelId?: string;
                serviceUrl?: string;
            };
        };
        jovo?: {
            id?: string;
            alexa?: {
                apiEndpoint: string;
                apiAccessToken: string;
                deviceId: string;
            };
            googleAssistant: {
                localityGiven?: boolean;
            };
        };
        api?: {
            avatar?: string;
        };
        twilio?: {
            phone?: string;
            numVoiceEnrollments?: number;
        };
    };
    _id?: any;
}
