/**************************************************************************
 * IMPORTS
 ***************************************************************************/
import BaseResource from "./BaseResource";
/**************************************************************************
 * INTERFACES
 ***************************************************************************/
export interface WebsiteOperatorListOne {
    type?: string;
    details?: WebsiteOperator;
}
export interface WebsiteOperatorData {
    data?: WebsiteOperator;
}
export interface WebsiteOperator {
    userID?: string;
    email?: string;
    avatar?: string;
    firstName?: string;
    lastName?: string;
    role?: string;
    title?: string;
    availability?: string;
    hasToken?: boolean;
    identifier?: string;
    key?: string;
}
export interface WebsiteOperatorsLastActiveListOne {
    userID?: string;
    avatar?: string;
    nickname?: string;
    timestamp?: number;
}
export interface WebsiteOperatorEmail {
    recipient?: string;
    userID?: string;
    subject?: string;
    message?: string;
    target?: WebsiteOperatorEmailTarget;
}
export interface WebsiteOperatorEmailTarget {
    label?: string;
    url?: string;
}
/**************************************************************************
 * CLASSES
 ***************************************************************************/
/**
 * Crisp WebsiteOperator Resource
 */
declare class WebsiteOperatorService extends BaseResource {
    /**
     * List Website Operators
     */
    listWebsiteOperators(websiteID: string): Promise<WebsiteOperatorListOne[]>;
    /**
     * List Last Active Website Operators
     */
    listLastActiveWebsiteOperators(websiteID: string): Promise<WebsiteOperatorsLastActiveListOne[]>;
    /**
     * Flush Last Active Website Operators
     */
    flushLastActiveWebsiteOperators(websiteID: string): Promise<any>;
    /**
     * Send Email To Website Operators
     */
    sendEmailToWebsiteOperators(websiteID: string, emailData: WebsiteOperatorEmail): Promise<any>;
    /**
     * Get A Website Operator
     */
    getWebsiteOperator(websiteID: string, userID: string): Promise<WebsiteOperator>;
    /**
     * Invite A Website Operator
     */
    inviteWebsiteOperator(websiteID: string, email: string, role: string, verify: boolean): Promise<any>;
    /**
     * Change Operator Membership
     */
    changeOperatorMembership(websiteID: string, userID: string, role: string, title: string): Promise<any>;
    /**
     * Unlink Operator From Website
     */
    unlinkOperatorFromWebsite(websiteID: string, userID: string): Promise<any>;
}
/**************************************************************************
 * EXPORTS
 ***************************************************************************/
export default WebsiteOperatorService;
