/**************************************************************************
 * IMPORTS
 ***************************************************************************/
import BaseResource from "./BaseResource";
/**************************************************************************
 * TYPES
 ***************************************************************************/
export type PluginSubscription = {
    id?: string;
    urn?: string;
    type?: string;
    category?: string;
    name?: string;
    summary?: string;
    price?: number;
    plans?: PluginSubscriptionPlan[];
    icon?: string;
    website_url?: string;
    contact_url?: string;
    terms_url?: string;
    privacy_url?: string;
    help_url?: string;
    video_url?: string;
    configurable?: boolean;
    since?: string;
    active?: boolean;
    website_id?: string;
    card_id?: string;
};
export type PluginSubscriptionPlan = {
    id?: string;
    name?: string;
    price?: number;
};
export type PluginSubscriptionSettings = {
    plugin_id?: string;
    website_id?: string;
    token?: string;
    schema?: object;
    settings?: object;
    settings_form_url?: string;
    callback_url?: string;
};
export type PluginSubscriptionChannelForward = {
    namespace?: string;
    identifier?: string;
    payload?: object;
};
export type PluginSubscriptionEventDispatch = {
    name?: string;
    data?: object;
};
/**************************************************************************
 * CLASSES
 ***************************************************************************/
/**
 * Crisp PluginSubscription Resource
 */
declare class PluginSubscriptionService extends BaseResource {
    /**
     * List All Active Subscriptions
     */
    listAllActiveSubscriptions(): Promise<PluginSubscription[]>;
    /**
     * List Subscriptions For A Website
     */
    listSubscriptionsForWebsite(websiteID: string): Promise<PluginSubscription[]>;
    /**
     * Get Subscription Details
     */
    getSubscriptionDetails(websiteID: string, pluginID: string): Promise<PluginSubscription>;
    /**
     * Subscribe Website To Plugin
     */
    subscribeWebsiteToPlugin(websiteID: string, pluginID: string): Promise<any>;
    /**
     * Unsubscribe Plugin From Website
     */
    unsubscribePluginFromWebsite(websiteID: string, pluginID: string): Promise<any>;
    /**
     * Get Subscription Settings
     */
    getSubscriptionSettings(websiteID: string, pluginID: string): Promise<PluginSubscriptionSettings>;
    /**
     * Save Subscription Settings
     */
    saveSubscriptionSettings(websiteID: string, pluginID: string, settings: object): Promise<any>;
    /**
     * Update Subscription Settings
     */
    updateSubscriptionSettings(websiteID: string, pluginID: string, settings: object): Promise<any>;
    /**
     * Get Plugin Usage Bills
     */
    getPluginUsageBills(websiteID: string, pluginID: string): Promise<any>;
    /**
     * Report Plugin Usage To Bill
     */
    reportPluginUsageToBill(websiteID: string, pluginID: string, usage: object): Promise<any>;
    /**
     * Get Plugin Attest Provenance
     */
    getPluginAttestProvenance(websiteID: string, pluginID: string): Promise<any>;
    /**
     * Forward Plugin Payload To Channel
     */
    forwardPluginPayloadToChannel(websiteID: string, pluginID: string, payload: PluginSubscriptionChannelForward): Promise<any>;
    /**
     * Dispatch Plugin Event
     */
    dispatchPluginEvent(websiteID: string, pluginID: string, payload: PluginSubscriptionEventDispatch): Promise<any>;
}
/**************************************************************************
 * EXPORTS
 ***************************************************************************/
export default PluginSubscriptionService;
