/**
 * Row Level Security (RLS) Manager
 * ksqlDBテーブルに対する行レベルセキュリティポリシーの管理
 */
export interface RLSPolicy {
    id?: string;
    tableName: string;
    policyName: string;
    condition: string;
    roles: string[];
    operation: 'SELECT' | 'INSERT' | 'UPDATE' | 'DELETE' | 'ALL';
    enabled: boolean;
}
export type PolicyType = 'PERMISSIVE' | 'RESTRICTIVE';
export interface CreatePolicyOptions {
    tableName: string;
    policyName?: string;
    condition: string;
    roles: string[];
    operation?: 'SELECT' | 'INSERT' | 'UPDATE' | 'DELETE' | 'ALL';
    type?: PolicyType;
}
/**
 * Row Level Security Manager
 * ksqlDBでのRLSポリシー管理を提供
 */
export declare class RLSManager {
    private policies;
    private static instance;
    private constructor();
    /**
     * シングルトンインスタンスを取得
     */
    static getInstance(): RLSManager;
    /**
     * RLSポリシーを作成
     */
    createPolicy(options: CreatePolicyOptions): RLSPolicy;
    /**
     * ポリシーを有効化
     */
    enablePolicy(policyId: string): boolean;
    /**
     * ポリシーを無効化
     */
    disablePolicy(policyId: string): boolean;
    /**
     * ポリシーを削除
     */
    dropPolicy(policyId: string): boolean;
    /**
     * テーブルのポリシー一覧を取得
     */
    getPoliciesForTable(tableName: string): RLSPolicy[];
    /**
     * 全ポリシー一覧を取得
     */
    getAllPolicies(): RLSPolicy[];
    /**
     * ユーザーとロールに基づいてクエリ条件を生成
     */
    generateQueryCondition(tableName: string, userRoles: string[]): string | null;
}
/**
 * 便利関数のエクスポート
 */
export declare const rls: {
    /**
     * ポリシー作成のショートカット
     */
    createPolicy: (options: CreatePolicyOptions) => RLSPolicy;
    /**
     * マネージャーインスタンスを取得
     */
    getManager: () => RLSManager;
};
export default RLSManager;
//# sourceMappingURL=row-level-security.d.ts.map