import type { User, Role, Policy } from '../types/entities.js';
import type { IAMStorage } from '../core/storage.js';
import type { ILogger, LogLevel, IAMConfig } from '../core/logger.js';
export interface InMemoryAdapterOptions {
    users?: User[];
    roles?: Role[];
    policies?: Policy[];
    logger?: ILogger;
    logLevel?: LogLevel;
    config?: IAMConfig;
}
export declare class InMemoryAdapter implements IAMStorage {
    private users;
    private roles;
    private policies;
    private logger;
    constructor(options?: InMemoryAdapterOptions);
    getUser(id: string): Promise<User | undefined>;
    getUsers(ids: string[]): Promise<User[]>;
    getAllUsers(): AsyncIterable<User>;
    getRole(id: string): Promise<Role | undefined>;
    getRoles(ids: string[]): Promise<Role[]>;
    getAllRoles(): AsyncIterable<Role>;
    getPolicy(id: string): Promise<Policy | undefined>;
    getPolicies(ids: string[]): Promise<Policy[]>;
    getAllPolicies(): AsyncIterable<Policy>;
    saveUser(user: User): Promise<void>;
    saveRole(role: Role): Promise<void>;
    savePolicy(policy: Policy): Promise<void>;
    deleteUser(id: string): Promise<void>;
    deleteRole(id: string): Promise<void>;
    deletePolicy(id: string): Promise<void>;
}
//# sourceMappingURL=inMemoryAdapter.d.ts.map