export interface ConnectProvider {
    /** Unique identifier for the connect provider. */
    id: number;
    /** ▃▃▃▃▃▃▃▃▃▃▃▃▃▃ Relations ▃▃▃▃▃▃▃▃▃▃▃▃▃▃ */
    /** User created this (Owner). */
    user_id: number;
    /** Linked connect (Add after request verified by SD admin). */
    connect_id?: number | null;
    /** ▃▃▃▃▃▃▃▃▃▃▃▃▃▃ Officer zone ▃▃▃▃▃▃▃▃▃▃▃▃▃▃ */
    /** Officer. */
    officer_id?: number | null;
    /** Approved by officer. */
    approved_at?: string | null;
    /** Rejected by officer. */
    rejected_at?: string | null;
    /** Officer message for provider owner (Reject reason or, ...). */
    officer_message?: string | null;
    /** User request to review to publish. */
    reviewing: boolean;
    /** ▃▃▃▃▃▃▃▃▃▃▃▃▃▃ Configuration ▃▃▃▃▃▃▃▃▃▃▃▃▃▃ */
    /** Unique code (After first approve it cannot change). */
    code: string;
    /** [Same as connect->name] Name of connect. */
    name: string;
    /** [Same as connect->icon] Icon of connect. */
    icon?: string | null;
    /** [Same as connect->enable] Enable/Disable connect service. */
    enable: boolean;
    /** [Same as connect->mode] {@see ConnectMode}. */
    mode: string;
    /** {name, description, ...} Used to update the linked connect. */
    info: Array<{
        name: string;
        description: string;
    }>;
    /** {confirm, read_categories, write_categories, ...} Used to update the linked connect. */
    config: Array<string>;
    /** ▃▃▃▃▃▃▃▃▃▃▃▃▃▃ Developer ▃▃▃▃▃▃▃▃▃▃▃▃▃▃ */
    /** Keep Auth config. */
    auth: Array<string>;
    /** Keep API configs. External service calls these endpoints on SD. */
    apis: Array<string>;
    /** Keep webhooks configs. We call these endpoints. */
    webhooks: Array<(typeof ConnectProvider.Webhooks)[keyof typeof ConnectProvider.Webhooks]>;
    /** ▃▃▃▃▃▃▃▃▃▃▃▃▃▃ Statistics ▃▃▃▃▃▃▃▃▃▃▃▃▃▃ */
    /** Total errors (Reset by user). */
    errors: number;
    /** Timestamp for when the connect provider was created. */
    created_at: string;
    /** Timestamp for when the connect provider was last updated. */
    updated_at: string;
}
export declare namespace ConnectProvider {
    type WebhookParamValue = "notify_shop" | "sync_category" | "sync_product" | "create_order" | "confirm_order" | "get_order" | "cancel_order" | "sync_customers";
    /**
     * Interface representing a webhook.
     */
    interface IWebhook {
        /** Parameter representing the webhook. */
        param: WebhookParamValue;
        /** Icon associated with the webhook. */
        icon: string;
        /** Title of the webhook. */
        title: string;
        /** Description of the webhook. */
        description: string;
    }
    export const Webhooks: Record<WebhookParamValue, IWebhook>;
    /**
     * Interface representing an authentication method.
     */
    interface IAuthMethod {
        /** Value representing the authentication method. */
        value: AuthMethodKey;
        /** Title of the authentication method. */
        title: string;
        /** Description of the authentication method. */
        description: string;
        /** Icon associated with the authentication method. */
        icon: string;
    }
    /**
     * Type representing the keys of the authentication methods object.
     */
    type AuthMethodKey = "OAuth" | "Password";
    /**
     * Constant object containing details for each authentication method.
     */
    export const AuthMethods: Record<AuthMethodKey, IAuthMethod>;
    export {};
}
