import type { RBACOptions, RBACUser } from './types';
/**
 * Singleton store for RBAC configuration
 * This allows the RBAC system to be initialized once and used throughout the application
 */
export declare class RBACConfigStore<P, U extends RBACUser = RBACUser> {
    private static instance;
    private _options;
    private constructor();
    /**
     * Get the singleton instance of the RBAC config store
     */
    static getInstance<P, U extends RBACUser = RBACUser>(): RBACConfigStore<P, U>;
    /**
     * Initialize the RBAC configuration
     * @param options - RBAC configuration options
     */
    initialize(options: RBACOptions<P, U>): void;
    /**
     * Get the RBAC configuration options
     * @throws Error if RBAC has not been initialized
     */
    get options(): RBACOptions<P, U>;
}
