import mongoose from "mongoose";
import { AuditInterface, ProjectInterface, TenantInterface } from ".";
export declare const PaymentGatewayOption: string[];
export declare type PaymentGatewayType = "SQUAREUP" | "DOKU" | "BRAINTREE" | "TAZAPAY" | "NAB" | "PAYPALL";
export declare const SocialMediaName: string[];
export declare type SocialMediaNameType = "FACEBOOK" | "INSTAGRAM" | "YOUTUBE" | "LINKEDIN" | "TIKTOK" | "GOOGLE+" | "TWITER" | "PINTEREST";
export declare const TemplateTypeData: string[];
export declare type TemplateType = "NAVBAR" | "FOOTER" | "SECTION";
export interface MenuType {
    name: any;
    url: string;
    subItems?: MenuType[];
    class?: string;
    col?: number;
    active?: boolean;
}
export interface CustomRelationshipManagement {
    name?: string;
    credential?: unknown;
    active?: boolean;
}
export interface WhiteLabelInterface extends AuditInterface {
    logo: string;
    cssRoot: string;
    menu?: MenuType[];
    footer: string;
    type: "MULTI PROJECTS" | "SINGLE PROJECT";
    accessToken: string;
    domainName: string;
    proejctUrl?: string;
    favicon?: string;
    metaTitle?: string;
    metaDescription?: string;
    keyword?: string;
    bannerUrl?: string;
    metaImage?: string;
    menus?: {
        [code: string]: MenuType[];
    };
    /**
     * @abstract New Field for Whitelabel
     */
    tenantId: string;
    tenant: TenantInterface;
    headerTracker?: string;
    footerTracker?: string;
    /**
     * @abstract New available on version 1.1.17
     */
    socialMedia?: SocialMediaInterface[];
    darkLogo?: string;
    lightLogo?: string;
    pipedriveToken?: string;
    customerRelationshipManagement?: CustomRelationshipManagement[];
    officeTime?: {
        iconUrl?: string;
        title?: string;
        description?: string;
    };
}
export interface WhiteLabelInterfaceServer extends AuditInterface {
    logo: string;
    cssRoot: string;
    menu?: MenuType[];
    footer: string;
    type: "MULTI PROJECTS" | "SINGLE PROJECT";
    accessToken: string;
    domainName: string;
    proejctUrl?: string;
    favicon?: string;
    metaTitle?: string;
    metaDescription?: string;
    keyword?: string;
    bannerUrl?: string;
    metaImage?: string;
    menus?: {
        [code: string]: MenuType[];
    };
    /**
     * @abstract New Field for Whitelabel
     */
    tenantId: string;
    tenant: mongoose.Types.ObjectId;
    headerTracker?: string;
    footerTracker?: string;
    /**
     * @abstract New available on version 1.1.17
     */
    socialMedia?: mongoose.Types.ObjectId[];
    darkLogo?: string;
    lightLogo?: string;
    officeTime?: {
        iconUrl?: string;
        title?: string;
        description?: string;
    };
}
/**
 * @abstract New available on version 1.1.17
 */
export interface TemplateDesignInterface extends AuditInterface {
    name: string;
    imageUrl: string;
    type: TemplateType;
    exampleURL?: string;
    dataType?: "ARRAY" | "OBJECT";
    templateDataType: string;
}
export interface SocialMediaInterface {
    name: SocialMediaNameType;
    url: string;
    tile: string;
}
export interface NavbarDataInterface {
}
export interface FooterSectionInterface {
    title?: string;
    image?: string;
    shortDescription?: string;
    menus?: MenuType[];
    listStyle?: "list-none" | "list-disc" | "list-decimal";
    listStylePosition?: "list-inside" | "list-outside";
    listPosition?: "row" | "Col";
    listStyleImage?: string;
    lineHeight?: number;
}
export interface FooterDataInterface {
    [code: number]: FooterSectionInterface[];
}
export interface WhitelabelTemplateInterface {
    navbarDesignId: string;
    navbarDesign: TemplateDesignInterface;
    navbarData: NavbarDataInterface;
    footerDesignId: string;
    footerDesign: TemplateDesignInterface;
    footerData: FooterDataInterface;
}
export interface WhitelabelTemplateInterfaceServer {
    navbarDesignId: string;
    navbarDesign: mongoose.Types.ObjectId;
    navbarData: NavbarDataInterface;
    footerDesignId: string;
    footerDesign: mongoose.Types.ObjectId;
    footerData: FooterDataInterface;
}
/**
 * @abstract ===== END update version
 */
export interface WhiteLabelPaymentGatewayInterface extends AuditInterface {
    whitelableId: string;
    whiteLabel: WhiteLabelInterface;
    projectId: string;
    project: ProjectInterface;
    paymentGateway: PaymentGatewayType;
    token: any;
}
export interface WhiteLabelPaymentGatewayInterfaceServer extends AuditInterface {
    whitelableId: string;
    whiteLabel: mongoose.Types.ObjectId;
    projectId: string;
    project: mongoose.Types.ObjectId;
    paymentGateway: PaymentGatewayType;
    token: any;
}
