import { DataStoreService } from '../shared/data-store.service.js';
import type { PersistenceService } from '../shared/persistence.js';
import { User, UserRole } from '../shared/domain.js';
import { EncryptionService } from '../shared/encryption.service.js';
export declare const MIN_PASSWORD_LENGTH = 4;
export interface CreateUserInput {
    fullName: string;
    username: string;
    password: string;
    role: UserRole;
}
export interface UpdateUserInput {
    fullName?: string;
    username?: string;
    role?: UserRole;
    password?: string;
}
export declare class UsersService {
    private readonly store;
    private readonly persistence;
    private readonly encryption;
    constructor(store: DataStoreService, persistence: PersistenceService, encryption: EncryptionService);
    findAll(): User[];
    create(input: CreateUserInput): Promise<User>;
    setActive(id: number, isActive: boolean): Promise<User>;
    update(id: number, input: UpdateUserInput): Promise<User>;
    remove(id: number): Promise<void>;
    getDecryptedPassword(user: User): string | null;
}
