import { Config } from './config';
import Request from './request';
import { SetPassword, User } from './user';
import { Adapter } from './adapter';
import { Application } from './application';
import { Cert } from './cert';
import { Enforcer } from './enforcer';
import { Group } from './group';
import { Model } from './model';
import { Organization } from './organization';
import { Payment } from './payment';
import { Session } from './session';
import { Syncer } from './syncer';
import { Permission } from './permission';
import { Plan } from './plan';
import { Policy } from './policy';
import { Pricing } from './pricing';
import { Provider } from './provider';
import { Resource } from './resource';
import { Role } from './role';
import { Subscription } from './subscription';
import { Token } from './token';
import { Webhook } from './webhook';
import { Product } from './product';
import { Email } from './email';
import { Sms } from './sms';
import { MfaData } from './mfa';
import { CasbinRequest } from './enforce';
import type { AxiosRequestConfig } from 'axios';
export declare class SDK {
    protected readonly config: Config;
    protected readonly request: Request;
    private userSDK;
    private adapterSDK;
    private applicationSDK;
    private certSDK;
    private enforcerSDK;
    private groupSDK;
    private modelSDK;
    private organizationSDK;
    private paymentSDK;
    private sessionSDK;
    private syncerSDK;
    private permissionSDK;
    private planSDK;
    private policySDK;
    private pricingSDK;
    private providerSDK;
    private resourceSDK;
    private roleSDK;
    private subscriptionSDK;
    private tokenSDK;
    private webhookSDK;
    private productSDK;
    private emailSDK;
    private smsSDK;
    private mfaSDK;
    private enforceSDK;
    private urlSDK;
    constructor(config: Config, axiosConfig?: AxiosRequestConfig);
    getAuthToken(code: string): Promise<{
        access_token: string;
        refresh_token: string;
    }>;
    refreshToken(refreshToken: string): Promise<{
        access_token: string;
        refresh_token: string;
    }>;
    parseJwtToken(token: string): User;
    getUsers(): Promise<import("axios").AxiosResponse<{
        data: User[];
    }, any>>;
    getUser(id: string): Promise<import("axios").AxiosResponse<{
        data: User;
    }, any>>;
    getUserCount(isOnline: boolean): Promise<import("axios").AxiosResponse<number, any>>;
    addUser(user: User): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    updateUser(user: User): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    deleteUser(user: User): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    getAdapters(): Promise<import("axios").AxiosResponse<{
        data: Adapter[];
    }, any>>;
    getAdapter(id: string): Promise<import("axios").AxiosResponse<{
        data: Adapter;
    }, any>>;
    addAdapter(adapter: Adapter): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    updateAdapter(adapter: Adapter): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    deleteAdapter(adapter: Adapter): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    getApplications(): Promise<import("axios").AxiosResponse<{
        data: Application[];
    }, any>>;
    getApplication(name: string): Promise<import("axios").AxiosResponse<{
        data: Application;
    }, any>>;
    addApplication(application: Application): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    updateApplication(application: Application): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    deleteApplication(application: Application): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    getCerts(): Promise<import("axios").AxiosResponse<{
        data: Cert[];
    }, any>>;
    getCert(id: string): Promise<import("axios").AxiosResponse<{
        data: Cert;
    }, any>>;
    addCert(cert: Cert): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    updateCert(cert: Cert): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    deleteCert(cert: Cert): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    getEnforcers(): Promise<import("axios").AxiosResponse<{
        data: Enforcer[];
    }, any>>;
    getEnforcer(id: string): Promise<import("axios").AxiosResponse<{
        data: Enforcer;
    }, any>>;
    addEnforcer(enforcer: Enforcer): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    updateEnforcer(enforcer: Enforcer): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    deleteEnforcer(enforcer: Enforcer): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    getGroups(): Promise<import("axios").AxiosResponse<{
        data: Group[];
    }, any>>;
    getGroup(id: string): Promise<import("axios").AxiosResponse<{
        data: Group;
    }, any>>;
    addGroup(group: Group): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    updateGroup(group: Group): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    deleteGroup(group: Group): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    getModels(): Promise<import("axios").AxiosResponse<{
        data: Model[];
    }, any>>;
    getModel(id: string): Promise<import("axios").AxiosResponse<{
        data: Model;
    }, any>>;
    addModel(model: Model): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    updateModel(model: Model): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    deleteModel(model: Model): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    getOrganizations(): Promise<import("axios").AxiosResponse<{
        data: Organization[];
    }, any>>;
    getOrganization(id: string): Promise<import("axios").AxiosResponse<{
        data: Organization;
    }, any>>;
    addOrganization(organization: Organization): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    updateOrganization(organization: Organization): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    deleteOrganization(organization: Organization): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    getPayments(): Promise<import("axios").AxiosResponse<{
        data: Payment[];
    }, any>>;
    getPayment(id: string): Promise<import("axios").AxiosResponse<{
        data: Payment;
    }, any>>;
    addPayment(payment: Payment): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    updatePayment(payment: Payment): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    deletePayment(payment: Payment): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    getSessions(): Promise<import("axios").AxiosResponse<{
        data: Session[];
    }, any>>;
    getSession(name: string, application: string): Promise<import("axios").AxiosResponse<{
        data: Session;
    }, any>>;
    addSession(session: Session): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    updateSession(session: Session): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    deleteSession(session: Session): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    getSyncers(): Promise<import("axios").AxiosResponse<{
        data: Syncer[];
    }, any>>;
    getSyncer(id: string): Promise<import("axios").AxiosResponse<{
        data: Syncer;
    }, any>>;
    addSyncer(syncer: Syncer): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    updateSyncer(syncer: Syncer): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    deleteSyncer(syncer: Syncer): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    getPermissions(): Promise<import("axios").AxiosResponse<{
        data: Permission[];
    }, any>>;
    getPermission(id: string): Promise<import("axios").AxiosResponse<{
        data: Permission;
    }, any>>;
    addPermission(permission: Permission): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    updatePermission(permission: Permission): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    deletePermission(permission: Permission): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    getPlans(): Promise<import("axios").AxiosResponse<{
        data: Plan[];
    }, any>>;
    getPlan(id: string): Promise<import("axios").AxiosResponse<{
        data: Plan;
    }, any>>;
    addPlan(plan: Plan): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    updatePlan(plan: Plan): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    deletePlan(plan: Plan): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    getPolicies(enforcerName: string, adapterId?: string): Promise<import("axios").AxiosResponse<{
        data: Policy[];
    }, any>>;
    addPolicy(enforcer: Enforcer, policy: Policy): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    updatePolicy(enforcer: Enforcer, oldPolicy: Policy, newPolicy: Policy): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    deletePolicy(enforcer: Enforcer, policy: Policy): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    getPricings(): Promise<import("axios").AxiosResponse<{
        data: Pricing[];
    }, any>>;
    getPricing(id: string): Promise<import("axios").AxiosResponse<{
        data: Pricing;
    }, any>>;
    addPricing(pricing: Pricing): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    updatePricing(pricing: Pricing): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    deletePricing(pricing: Pricing): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    getProviders(): Promise<import("axios").AxiosResponse<{
        data: Provider[];
    }, any>>;
    getProvider(id: string): Promise<import("axios").AxiosResponse<{
        data: Provider;
    }, any>>;
    addProvider(provider: Provider): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    updateProvider(provider: Provider): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    deleteProvider(provider: Provider): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    getResources(owner: string, user: string, field: string, value: string, sortField: string, sortOrder: string): Promise<import("axios").AxiosResponse<{
        data: Resource[];
    }, any>>;
    getResource(id: string): Promise<import("axios").AxiosResponse<{
        data: Resource;
    }, any>>;
    addResource(resource: Resource): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    updateResource(resource: Resource): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    deleteResource(resource: Resource): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    uploadResource(resource: Resource, file: any): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    getRoles(): Promise<import("axios").AxiosResponse<{
        data: Role[];
    }, any>>;
    getRole(id: string): Promise<import("axios").AxiosResponse<{
        data: Role;
    }, any>>;
    addRole(role: Role): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    updateRole(role: Role): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    deleteRole(role: Role): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    getSubscriptions(): Promise<import("axios").AxiosResponse<{
        data: Subscription[];
    }, any>>;
    getSubscription(id: string): Promise<import("axios").AxiosResponse<{
        data: Subscription;
    }, any>>;
    addSubscription(subscription: Subscription): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    updateSubscription(subscription: Subscription): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    deleteSubscription(subscription: Subscription): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    getTokens(p: number, pageSize: number): Promise<import("axios").AxiosResponse<{
        data: Token[];
    }, any>>;
    getToken(id: string): Promise<import("axios").AxiosResponse<{
        data: Token;
    }, any>>;
    addToken(token: Token): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    updateToken(token: Token): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    deleteToken(token: Token): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    introspect(token: string, token_type_hint: string): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    getWebhooks(): Promise<import("axios").AxiosResponse<{
        data: Webhook[];
    }, any>>;
    getWebhook(id: string): Promise<import("axios").AxiosResponse<{
        data: Webhook;
    }, any>>;
    addWebhook(webhook: Webhook): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    updateWebhook(webhook: Webhook): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    deleteWebhook(webhook: Webhook): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    getProducts(): Promise<import("axios").AxiosResponse<{
        data: Product[];
    }, any>>;
    getProduct(id: string): Promise<import("axios").AxiosResponse<{
        data: Product;
    }, any>>;
    addProduct(product: Product): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    updateProduct(product: Product): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    deleteProduct(product: Product): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    sendEmail(email: Email): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    sendSms(sms: Sms): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    setPassword(data: SetPassword): Promise<import("axios").AxiosResponse<Record<string, unknown>, any>>;
    initiateMfa(data: MfaData): Promise<import("axios").AxiosResponse<{
        data: import("./mfa").CasdoorMfaProps;
    }, any>>;
    verifyMfa(data: MfaData, passcode: string): Promise<import("axios").AxiosResponse<{
        data: string;
    }, any>>;
    enableMfa(data: MfaData, cookie?: any): Promise<import("axios").AxiosResponse<{
        data: string;
    }, any>>;
    setPreferredMfa(data: MfaData): Promise<import("axios").AxiosResponse<{
        data: import("./mfa").CasdoorMfaProps[];
    }, any>>;
    deleteMfa(owner: string, name: string): Promise<import("axios").AxiosResponse<{
        data: import("./mfa").CasdoorMfaProps[];
    }, any>>;
    enforce(permissionId: string, modelId: string, resourceId: string, casbinRequest: CasbinRequest): Promise<boolean>;
    batchEnforce(permissionId: string, modelId: string, resourceId: string, casbinRequest: CasbinRequest[]): Promise<boolean[]>;
    getSignUpUrl(enablePassword: boolean, redirectUri: string): string;
    getSignInUrl(redirectUri: string): string;
    getUserProfileUrl(userName: string, accessToken?: string): string;
    getMyProfileUrl(accessToken?: string): string;
}
