/**************************************************************************
 * IMPORTS
 ***************************************************************************/
import BaseResource from "./BaseResource";
/**************************************************************************
 * INTERFACES
 ***************************************************************************/
export interface Helpdesk {
    name?: string;
    url?: string;
}
export interface HelpdeskRemoveVerify {
    method: string;
    secret: string;
}
export interface HelpdeskLocale {
    locale_id?: string;
    locale?: string;
    url?: string;
    articles?: number;
    categories?: number;
}
export interface HelpdeskLocaleArticle {
    article_id?: string;
    title?: string;
    description?: string | null;
    content?: string;
    status?: "published" | "draft";
    visibility?: "visible" | "hidden";
    featured?: boolean;
    visits?: number;
    order?: number;
    url?: string;
    created_at?: number;
    updated_at?: number;
    published_at?: number;
}
export interface HelpdeskLocaleArticleCategory {
    category_id?: string;
    section_id?: string;
}
export interface HelpdeskLocaleArticleAlternate {
    locale?: string;
    article_id?: string;
}
export interface HelpdeskLocaleArticlePage {
    title?: string;
    url?: string;
}
export interface HelpdeskLocaleSection {
    section_id?: string;
    name?: string;
    order?: number;
    created_at?: number;
    updated_at?: number;
}
export interface HelpdeskLocaleFeedbackRatings {
    ratings?: HelpdeskLocaleFeedbackRatingsRatings;
}
export interface HelpdeskLocaleFeedbackRatingsRatings {
    helpful?: number;
    unhelpful?: number;
}
export interface HelpdeskLocaleFeedbackItem {
    rating?: string;
    comment?: string;
    article?: HelpdeskLocaleFeedbackItemArticle;
    session?: HelpdeskLocaleFeedbackItemSession;
    created_at?: number;
}
export interface HelpdeskLocaleFeedbackItemArticle {
    article_id?: string;
    title?: string;
    url?: string;
}
export interface HelpdeskLocaleFeedbackItemSession {
    session_id?: string;
    nickname?: string;
    email?: string;
    avatar?: string;
    geolocation?: HelpdeskLocaleFeedbackItemSessionGeolocation;
    assigned?: HelpdeskLocaleFeedbackItemSessionAssigned;
}
export interface HelpdeskLocaleFeedbackItemSessionGeolocation {
    country?: string;
    region?: string;
    city?: string;
    coordinates?: HelpdeskLocaleFeedbackItemSessionGeolocationCoordinates;
}
export interface HelpdeskLocaleFeedbackItemSessionGeolocationCoordinates {
    latitude?: number;
    longitude?: number;
}
export interface HelpdeskLocaleFeedbackItemSessionAssigned {
    user_id?: string;
}
export interface HelpdeskRedirection {
    redirection_id?: string;
    path?: string;
    target?: string;
    created_at?: number;
    updated_at?: number;
}
export interface HelpdeskSettings {
    name?: string;
    appearance?: HelpdeskSettingsAppearance;
    behavior?: HelpdeskSettingsBehavior;
    include?: HelpdeskSettingsInclude;
    access?: HelpdeskSettingsAccess;
}
export interface HelpdeskSettingsAppearance {
    logos?: HelpdeskSettingsAppearanceLogos;
    banner?: string;
}
export interface HelpdeskSettingsAppearanceLogos {
    header?: string;
    footer?: string;
}
export interface HelpdeskSettingsBehavior {
    frequentlyRead?: boolean;
    showCategoryImages?: boolean;
    showChatbox?: boolean;
    askFeedback?: boolean;
    localePicker?: boolean;
    referLink?: boolean;
    forbidIndexing?: boolean;
    statusHealthDead?: boolean;
}
export interface HelpdeskSettingsInclude {
    html?: string;
}
export interface HelpdeskSettingsAccess {
    password?: string;
}
export interface HelpdeskDomain {
    root?: string;
    basic?: string;
    custom?: string;
    verified?: boolean;
}
/**************************************************************************
 * CLASSES
 ***************************************************************************/
/**
 * Crisp WebsiteHelpdesk Resource
 */
declare class WebsiteHelpdesk extends BaseResource {
    /**
     * Check If Helpdesk Exists
     */
    checkHelpdeskExists(websiteID: string): Promise<any>;
    /**
     * Resolve Helpdesk
     */
    resolveHelpdesk(websiteID: string): Promise<Helpdesk>;
    /**
     * Initialize Helpdesk
     */
    initializeHelpdesk(websiteID: string, name: string, domainBasic: string): Promise<any>;
    /**
     * Delete Helpdesk
     */
    deleteHelpdesk(websiteID: string, verify: HelpdeskRemoveVerify): Promise<any>;
    /**
     * List Helpdesk Locales
     */
    listHelpdeskLocales(websiteID: string, pageNumber?: number): Promise<HelpdeskLocale[]>;
    /**
     * Add Helpdesk Locale
     */
    addHelpdeskLocale(websiteID: string, locale: string): Promise<any>;
    /**
     * Check If Helpdesk Locale Exists
     */
    checkHelpdeskLocaleExists(websiteID: string, locale: string): Promise<any>;
    /**
     * Resolve Helpdesk Locale
     */
    resolveHelpdeskLocale(websiteID: string, locale: string): Promise<HelpdeskLocale>;
    /**
     * Delete Helpdesk Locale
     */
    deleteHelpdeskLocale(websiteID: string, locale: string): Promise<any>;
    /**
     * List Helpdesk Locale Articles
     */
    listHelpdeskLocaleArticles(websiteID: string, locale: string, pageNumber?: number, options?: object): Promise<any>;
    /**
     * Add A New Helpdesk Locale Article
     */
    addNewHelpdeskLocaleArticle(websiteID: string, locale: string, title: string): Promise<any>;
    /**
     * Check If Helpdesk Locale Article Exists
     */
    checkHelpdeskLocaleArticleExists(websiteID: string, locale: string, articleId: string): Promise<any>;
    /**
     * Resolve Helpdesk Locale Article
     */
    resolveHelpdeskLocaleArticle(websiteID: string, locale: string, articleId: string): Promise<HelpdeskLocaleArticle>;
    /**
     * Save Helpdesk Locale Article
     */
    saveHelpdeskLocaleArticle(websiteID: string, locale: string, articleId: string, article: HelpdeskLocaleArticle): Promise<any>;
    /**
     * Update Helpdesk Locale Article
     */
    updateHelpdeskLocaleArticle(websiteID: string, locale: string, articleId: string, article: HelpdeskLocaleArticle): Promise<any>;
    /**
     * Delete Helpdesk Locale Article
     */
    deleteHelpdeskLocaleArticle(websiteID: string, locale: string, articleId: string): Promise<any>;
    /**
     * Resolve Helpdesk Locale Article Page
     */
    resolveHelpdeskLocaleArticlePage(websiteID: string, locale: string, articleId: string): Promise<HelpdeskLocaleArticlePage>;
    /**
     * Resolve Helpdesk Locale Article Category
     */
    resolveHelpdeskLocaleArticleCategory(websiteID: string, locale: string, articleId: string): Promise<HelpdeskLocaleArticleCategory>;
    /**
     * Update Helpdesk Locale Article Category
     */
    updateHelpdeskLocaleArticleCategory(websiteID: string, locale: string, articleId: string, categoryId: string, sectionId?: string): Promise<any>;
    /**
     * List Helpdesk Locale Article Alternates
     */
    listHelpdeskLocaleArticleAlternates(websiteID: string, locale: string, articleId: string): Promise<HelpdeskLocaleArticleAlternate[]>;
    /**
     * Check If Helpdesk Locale Article Alternate Exists
     */
    checkHelpdeskLocaleArticleAlternateExists(websiteID: string, locale: string, articleId: string, localeLinked: string): Promise<any>;
    /**
     * Resolve Helpdesk Locale Article Alternate
     */
    resolveHelpdeskLocaleArticleAlternate(websiteID: string, locale: string, articleId: string, localeLinked: string): Promise<HelpdeskLocaleArticleAlternate>;
    /**
     * Save Helpdesk Locale Article Alternate
     */
    saveHelpdeskLocaleArticleAlternate(websiteID: string, locale: string, articleId: string, localeLinked: string, articleIdLinked: string): Promise<any>;
    /**
     * Delete Helpdesk Locale Article Alternate
     */
    deleteHelpdeskLocaleArticleAlternate(websiteID: string, locale: string, articleId: string, localeLinked: string): Promise<any>;
    /**
     * Publish Helpdesk Locale Article
     */
    publishHelpdeskLocaleArticle(websiteID: string, locale: string, articleId: string): Promise<any>;
    /**
     * Unpublish Helpdesk Locale Article
     */
    unpublishHelpdeskLocaleArticle(websiteID: string, locale: string, articleId: string): Promise<any>;
    /**
     * List Helpdesk Locale Categories
     */
    listHelpdeskLocaleCategories(websiteID: string, locale: string, pageNumber?: number): Promise<HelpdeskLocaleArticleCategory[]>;
    /**
     * Add Helpdesk Locale Category
     */
    addHelpdeskLocaleCategory(websiteID: string, locale: string, name: string): Promise<any>;
    /**
     * Check If Helpdesk Locale Category Exists
     */
    checkHelpdeskLocaleCategoryExists(websiteID: string, locale: string, categoryId: string): Promise<any>;
    /**
     * Resolve Helpdesk Locale Category
     */
    resolveHelpdeskLocaleCategory(websiteID: string, locale: string, categoryId: string): Promise<HelpdeskLocaleArticleCategory>;
    /**
     * Save Helpdesk Locale Category
     */
    saveHelpdeskLocaleCategory(websiteID: string, locale: string, categoryId: string, category: HelpdeskLocaleArticleCategory): Promise<any>;
    /**
     * Update Helpdesk Locale Category
     */
    updateHelpdeskLocaleCategory(websiteID: string, locale: string, categoryId: string, category: HelpdeskLocaleArticleCategory): Promise<any>;
    /**
     * Delete Helpdesk Locale Category
     */
    deleteHelpdeskLocaleCategory(websiteID: string, locale: string, categoryId: string): Promise<any>;
    /**
     * List Helpdesk Locale Sections
     */
    listHelpdeskLocaleSections(websiteID: string, locale: string, categoryId: string, pageNumber?: number): Promise<HelpdeskLocaleSection[]>;
    /**
     * Add Helpdesk Locale Section
     */
    addHelpdeskLocaleSection(websiteID: string, locale: string, categoryId: string, name: string): Promise<any>;
    /**
     * Check If Helpdesk Locale Section Exists
     */
    checkHelpdeskLocaleSectionExists(websiteID: string, locale: string, categoryId: string, sectionId: string): Promise<any>;
    /**
     * Resolve Helpdesk Locale Section
     */
    resolveHelpdeskLocaleSection(websiteID: string, locale: string, categoryId: string, sectionId: string): Promise<HelpdeskLocaleSection>;
    /**
     * Save Helpdesk Locale Section
    */
    saveHelpdeskLocaleSection(websiteID: string, locale: string, categoryId: string, sectionId: string, section: HelpdeskLocaleSection): Promise<any>;
    /**
     * Update Helpdesk Locale Section
     */
    updateHelpdeskLocaleSection(websiteID: string, locale: string, categoryId: string, sectionId: string, section: HelpdeskLocaleSection): Promise<any>;
    /**
     * Delete Helpdesk Locale Section
     */
    deleteHelpdeskLocaleSection(websiteID: string, locale: string, categoryId: string, sectionId: string): Promise<any>;
    /**
     * Map Helpdesk Locale Feedback Ratings
     */
    mapHelpdeskLocaleFeedbackRatings(websiteID: string, locale: string, filterDateStart?: string | null, filterDateEnd?: string | null): Promise<HelpdeskLocaleFeedbackRatings>;
    /**
     * List Helpdesk Locale Feedbacks
     */
    listHelpdeskLocaleFeedbacks(websiteID: string, locale: string, pageNumber?: number, filterDateStart?: string | null, filterDateEnd?: string | null): Promise<HelpdeskLocaleFeedbackItem[]>;
    /**
     * Import External Helpdesk To Locale
     */
    importExternalHelpdeskToLocale(websiteID: string, locale: string, helpdeskUrl: string): Promise<any>;
    /**
     * Export Helpdesk Locale Articles
     */
    exportHelpdeskLocaleArticles(websiteID: string, locale: string): Promise<any>;
    /**
     * List Helpdesk Redirections
     */
    listHelpdeskRedirections(websiteID: string, pageNumber?: number): Promise<HelpdeskRedirection[]>;
    /**
     * Add Helpdesk Redirection
     */
    addHelpdeskRedirection(websiteID: string, redirectionPath: string, redirectionTarget: string): Promise<any>;
    /**
     * Check If Helpdesk Redirection Exists
     */
    checkHelpdeskRedirectionExists(websiteID: string, redirectionId: string): Promise<any>;
    /**
     * Resolve Helpdesk Redirection
     */
    resolveHelpdeskRedirection(websiteID: string, redirectionId: string): Promise<HelpdeskRedirection>;
    /**
     * Delete Helpdesk Redirection
     */
    deleteHelpdeskRedirection(websiteID: string, redirectionId: string): Promise<any>;
    /**
     * Resolve Helpdesk Settings
      */
    resolveHelpdeskSettings(websiteID: string): Promise<HelpdeskSettings>;
    /**
     * Save Helpdesk Settings
     */
    saveHelpdeskSettings(websiteID: string, settings: HelpdeskSettings): Promise<any>;
    /**
     * Resolve Helpdesk Domain
     */
    resolveHelpdeskDomain(websiteID: string): Promise<HelpdeskDomain>;
    /**
     * Request Helpdesk Domain Change
     */
    requestHelpdeskDomainChange(websiteID: string, basic: string, custom: string): Promise<any>;
    /**
     * Generate Helpdesk Domain Setup Flow
     */
    generateHelpdeskDomainSetupFlow(websiteID: string, custom?: string | null): Promise<any>;
}
/**************************************************************************
 * EXPORTS
 ***************************************************************************/
export default WebsiteHelpdesk;
