import { OnModuleInit } from '@nestjs/common';
import { DataStoreService } from './data-store.service.js';
import { AttendanceMark, Employee, Position, Role, Station, User, Zone } from './domain.js';
import { PersistenceService } from './persistence.js';
import { EncryptionService } from './encryption.service.js';
export declare class MysqlPersistenceService implements PersistenceService, OnModuleInit {
    private readonly store;
    private readonly encryption;
    private readonly logger;
    private readonly pool;
    constructor(store: DataStoreService, encryption: EncryptionService);
    private ensureStationCredentials;
    private ensureEmployeeZonesTable;
    onModuleInit(): Promise<void>;
    private ensureZoneStatusColumn;
    private ensureStationRadiusDefault;
    private ensurePositionSchema;
    private columnExists;
    saveZone(zone: Zone): Promise<void>;
    deleteZone(zone: Zone): Promise<void>;
    saveStation(station: Station): Promise<void>;
    deleteStation(station: Station): Promise<void>;
    savePosition(position: Position): Promise<void>;
    deletePosition(position: Position): Promise<void>;
    saveEmployee(employee: Employee): Promise<void>;
    deleteEmployee(employee: Employee): Promise<void>;
    saveAttendanceMark(mark: AttendanceMark): Promise<void>;
    saveRole(role: Role): Promise<void>;
    deleteRole(role: Role): Promise<void>;
    saveUser(user: User): Promise<void>;
    deleteUser(user: User): Promise<void>;
    private loadZones;
    private loadStations;
    private loadPositions;
    private loadEmployees;
    private loadAttendance;
    private loadRoles;
    private loadUsers;
    private seedZones;
    private seedStations;
    private seedPositions;
    private seedEmployees;
    private getBootstrapRoles;
    private getBootstrapUsers;
    private seedRoles;
    private seedUsers;
}
