import { Adapter, Model } from "casbin";
import { PostgresAdapaterOptions, CasbinFilter } from "./model";
export declare class PostgresAdapter implements Adapter {
    private filtered;
    private readonly repo;
    private constructor();
    static newAdapter(options?: PostgresAdapaterOptions): Promise<PostgresAdapter>;
    static migrate(options?: PostgresAdapaterOptions): Promise<void>;
    open(): Promise<void>;
    close(): Promise<void>;
    isFiltered(): boolean;
    enabledFiltered(enabled: boolean): void;
    loadPolicy(model: Model): Promise<void>;
    loadFilteredPolicy(model: Model, filter: CasbinFilter): Promise<void>;
    savePolicy(model: Model): Promise<boolean>;
    addPolicy(sec: string, ptype: string, rule: string[]): Promise<void>;
    removePolicy(sec: string, ptype: string, rule: string[]): Promise<void>;
    removeFilteredPolicy(sec: string, ptype: string, fieldIndex: number, ...fieldValues: string[]): Promise<void>;
}
