import { AxiosResponse } from 'axios';
import { Config } from './config';
import Request from './request';
import { Enforcer } from './enforcer';
export interface Policy {
    Id: number;
    Ptype: string;
    V0: string;
    V1: string;
    V2: string;
    V3?: string;
    V4?: string;
    V5?: string;
    tableName?: string;
}
export declare class PolicySDK {
    private config;
    private readonly request;
    constructor(config: Config, request: Request);
    getPolicies(enforcerName: string, adapterId?: string): Promise<AxiosResponse<{
        data: Policy[];
    }, any>>;
    modifyPolicy(method: string, enforcer: Enforcer, policies: Policy[]): Promise<AxiosResponse<Record<string, unknown>, any>>;
    addPolicy(enforcer: Enforcer, policy: Policy): Promise<AxiosResponse<Record<string, unknown>, any>>;
    updatePolicy(enforcer: Enforcer, oldPolicy: Policy, newPolicy: Policy): Promise<AxiosResponse<Record<string, unknown>, any>>;
    deletePolicy(enforcer: Enforcer, policy: Policy): Promise<AxiosResponse<Record<string, unknown>, any>>;
}
