import { IBaseRepository } from "./base-repo";
import { DynamoDBClient } from "@aws-sdk/client-dynamodb";
import { Policy, Role, User } from "../models";
export declare class DynamoDBRepository implements IBaseRepository {
    private client;
    private docClient;
    private tableName;
    constructor(client: DynamoDBClient);
    setupTables(): Promise<void>;
    createUser(user: User): Promise<User>;
    getUser(userId: string): Promise<User>;
    createRole(role: Role): Promise<Role>;
    getRole(roleId: string): Promise<Role>;
    assignRoleToUser(userId: string, roleId: string): Promise<User>;
    createPolicy(policy: Policy): Promise<Policy>;
    attachPolicyToRole(policyId: string, roleId: string): Promise<void>;
    getUserPolicies(userId: string): Promise<Policy[]>;
    getRolePolicies(roleId: string): Promise<Policy[]>;
    updateRole(role: Role): Promise<Role>;
    updatePolicy(policy: Policy): Promise<Policy>;
    deletePolicy(policyId: string): Promise<void>;
    deleteRole(roleId: string): Promise<void>;
    detachPolicyFromUser(policyId: string, userId: string): Promise<void>;
    detachPolicyFromRole(policyId: string, roleId: string): Promise<void>;
    removeRoleFromUser(userId: string, roleId: string): Promise<void>;
    attachPolicyToUser(policyId: string, userId: string): Promise<void>;
    getPolicy(policyId: string): Promise<Policy>;
}
//# sourceMappingURL=dynamodb-repo.d.ts.map