import { DataStoreService } from '../shared/data-store.service.js';
import type { PersistenceService } from '../shared/persistence.js';
import { Position, Station, Zone } from '../shared/domain.js';
import { EncryptionService } from '../shared/encryption.service.js';
interface CreateZoneBody {
    name?: unknown;
}
interface UpdateZoneBody {
    name?: unknown;
}
interface UpdateZoneStatusBody {
    status?: unknown;
}
interface CreateStationBody {
    id?: unknown;
    name?: unknown;
    zoneId?: unknown;
    latitude?: unknown;
    longitude?: unknown;
    geofenceRadiusMeters?: unknown;
    username?: unknown;
    password?: unknown;
}
interface UpdateStationBody {
    name?: unknown;
    zoneId?: unknown;
    latitude?: unknown;
    longitude?: unknown;
    geofenceRadiusMeters?: unknown;
    username?: unknown;
    password?: unknown;
}
export declare class CatalogsService {
    private readonly store;
    private readonly persistence;
    private readonly encryption;
    constructor(store: DataStoreService, persistence: PersistenceService, encryption: EncryptionService);
    findZones(): Zone[];
    findZoneById(zoneId: number): Zone;
    createZone(body: CreateZoneBody): Promise<Zone>;
    updateZone(zoneId: number, body: UpdateZoneBody): Promise<Zone>;
    setZoneStatus(zoneId: number, body: UpdateZoneStatusBody): Promise<Zone>;
    deleteZone(zoneId: number): Promise<{
        deleted: true;
    }>;
    private parseZoneStatus;
    findStations(zoneId?: number): Station[];
    findStationById(stationId: number): Station;
    findPositions(): Position[];
    findPositionById(positionId: number): Position;
    createStation(body: CreateStationBody): Promise<Station>;
    updateStation(stationId: number, body: UpdateStationBody): Promise<Station>;
    deleteStation(stationId: number): Promise<{
        deleted: true;
    }>;
    decryptStationPassword(stationId: number): {
        password: string | null;
    };
    private nextStationId;
}
export {};
