import { z } from 'zod'; export { CANONICAL_LOC_CODES, CITIES, CITY_BY_NAME_RU, COUNTRIES, COUNTRY_BY_CODE, COUNTRY_BY_NAME_RU, CityLocationRow, CityOption, CityRef, CountryRef, buildCityOptions, catalogCitiesWithLocCodes, cityMatchesCountry, countriesWithCities, listCities, locCodeForCity, resolveCityRef, resolveCountryForCity, resolveCountryForCityFromRows } from './geo/index.js'; declare const appSwitcherIconSchema: z.ZodEnum<{ server: "server"; cloud: "cloud"; globe: "globe"; dashboard: "dashboard"; chart: "chart"; }>; declare const appSwitcherEntrySchema: z.ZodObject<{ id: z.ZodString; name: z.ZodString; subtitle: z.ZodOptional; url: z.ZodString; icon: z.ZodDefault>; enabled: z.ZodOptional; sort: z.ZodOptional; shortcut: z.ZodOptional; }, z.core.$strip>; declare const appSwitcherConfigSchema: z.ZodObject<{ menuLabel: z.ZodDefault; apps: z.ZodArray; url: z.ZodString; icon: z.ZodDefault>; enabled: z.ZodOptional; sort: z.ZodOptional; shortcut: z.ZodOptional; }, z.core.$strip>>; }, z.core.$strip>; type AppSwitcherEntry = z.infer; type AppSwitcherConfig = z.infer; declare const loginSchema: z.ZodObject<{ username: z.ZodString; password: z.ZodString; }, z.core.$strip>; type LoginInput = z.infer; type LoginRequest = LoginInput; type JwtClaims = { sub: string; exp: number; email?: string; name?: string; apps?: string[]; permissions?: string[]; is_admin?: boolean; }; type LoginResponse = { token: string; expires_at: string; }; declare const appSettingsPatchSchema: z.ZodObject<{ showQuickActions: z.ZodOptional; defaultTtl: z.ZodOptional; namingTemplate: z.ZodOptional; proxiedLock: z.ZodOptional; }, z.core.$strip>; type AppSettingsPatch = z.infer; declare const appSettingsSchema: z.ZodObject<{ id: z.ZodString; showQuickActions: z.ZodBoolean; defaultTtl: z.ZodNumber; namingTemplate: z.ZodString; proxiedLock: z.ZodBoolean; cloudflareConfigured: z.ZodOptional; }, z.core.$strip>; type AppSettings = z.infer; declare const nodeRoleSchema: z.ZodEnum<{ hub: "hub"; gw: "gw"; edge: "edge"; ix: "ix"; }>; type NodeRole = z.infer; declare const aliasPurposeSchema: z.ZodEnum<{ custom: "custom"; ix: "ix"; geo: "geo"; backup: "backup"; admin: "admin"; }>; type AliasPurpose = z.infer; declare const aliasModeSchema: z.ZodEnum<{ primary: "primary"; pair: "pair"; }>; type AliasMode = z.infer; declare const syncStatusSchema: z.ZodEnum<{ error: "error"; pending: "pending"; ok: "ok"; drift: "drift"; missing: "missing"; }>; type SyncStatus = z.infer; declare const addressFamilySchema: z.ZodEnum<{ v4: "v4"; v6: "v6"; }>; declare const cfZoneSchema: z.ZodObject<{ id: z.ZodString; name: z.ZodString; status: z.ZodOptional; }, z.core.$strip>; type CfZone = z.infer; declare const cfDnsRecordSchema: z.ZodObject<{ id: z.ZodOptional; type: z.ZodString; name: z.ZodString; content: z.ZodString; ttl: z.ZodNumber; proxied: z.ZodOptional; priority: z.ZodOptional; }, z.core.$strip>; type CfDnsRecord = z.infer; declare const createDnsRecordPayloadSchema: z.ZodObject<{ type: z.ZodString; name: z.ZodString; content: z.ZodString; ttl: z.ZodNumber; proxied: z.ZodOptional; priority: z.ZodOptional; }, z.core.$strip>; type CreateDnsRecordPayload = z.infer; declare const patchDnsRecordPayloadSchema: z.ZodObject<{ type: z.ZodOptional; name: z.ZodOptional; content: z.ZodOptional; ttl: z.ZodOptional; proxied: z.ZodOptional>; priority: z.ZodOptional>; }, z.core.$strip>; type PatchDnsRecordPayload = z.infer; declare const locationSchema: z.ZodObject<{ id: z.ZodString; code: z.ZodString; name: z.ZodString; country: z.ZodNullable; sortOrder: z.ZodNumber; }, z.core.$strip>; type Location = z.infer; declare const zoneSchema: z.ZodObject<{ id: z.ZodString; cfZoneId: z.ZodNullable; name: z.ZodString; role: z.ZodString; namingTemplate: z.ZodString; defaultTtl: z.ZodNumber; lastSyncAt: z.ZodNullable; createdAt: z.ZodString; updatedAt: z.ZodString; }, z.core.$strip>; type Zone = z.infer; declare const zoneCreateSchema: z.ZodObject<{ name: z.ZodString; cfZoneId: z.ZodNullable>; role: z.ZodDefault; namingTemplate: z.ZodOptional; defaultTtl: z.ZodOptional; }, z.core.$strip>; type ZoneCreate = z.infer; declare const zonePatchSchema: z.ZodObject<{ name: z.ZodOptional; cfZoneId: z.ZodOptional>>; role: z.ZodOptional>; namingTemplate: z.ZodOptional>; defaultTtl: z.ZodOptional>; }, z.core.$strip>; type ZonePatch = z.infer; declare const nodeAddressSchema: z.ZodObject<{ id: z.ZodString; family: z.ZodEnum<{ v4: "v4"; v6: "v6"; }>; ip: z.ZodString; }, z.core.$strip>; type NodeAddress = z.infer; declare const nodeSchema: z.ZodObject<{ id: z.ZodString; zoneId: z.ZodString; locationId: z.ZodString; locationCode: z.ZodOptional; locationName: z.ZodOptional; hostname: z.ZodString; role: z.ZodEnum<{ hub: "hub"; gw: "gw"; edge: "edge"; ix: "ix"; }>; indexNum: z.ZodNumber; providerTag: z.ZodNullable; notes: z.ZodNullable; syncStatus: z.ZodEnum<{ error: "error"; pending: "pending"; ok: "ok"; drift: "drift"; missing: "missing"; }>; cfARecordId: z.ZodNullable; cfAaaaRecordId: z.ZodNullable; lastError: z.ZodNullable; addresses: z.ZodDefault; ip: z.ZodString; }, z.core.$strip>>>; aliasCount: z.ZodOptional; createdAt: z.ZodString; updatedAt: z.ZodString; }, z.core.$strip>; type Node = z.infer; declare const nodeCreateSchema: z.ZodObject<{ zoneId: z.ZodString; locationId: z.ZodString; role: z.ZodEnum<{ hub: "hub"; gw: "gw"; edge: "edge"; ix: "ix"; }>; indexNum: z.ZodDefault; hostname: z.ZodOptional; providerTag: z.ZodNullable>; notes: z.ZodNullable>; ipv4: z.ZodString; ipv6: z.ZodNullable>; }, z.core.$strip>; type NodeCreate = z.infer; declare const nodePatchSchema: z.ZodObject<{ locationId: z.ZodOptional; role: z.ZodOptional>; indexNum: z.ZodOptional; hostname: z.ZodOptional; providerTag: z.ZodNullable>; notes: z.ZodNullable>; ipv4: z.ZodOptional; ipv6: z.ZodNullable>; }, z.core.$strip>; type NodePatch = z.infer; declare const aliasSchema: z.ZodObject<{ id: z.ZodString; zoneId: z.ZodString; name: z.ZodString; purpose: z.ZodEnum<{ custom: "custom"; ix: "ix"; geo: "geo"; backup: "backup"; admin: "admin"; }>; mode: z.ZodEnum<{ primary: "primary"; pair: "pair"; }>; targetNodeId: z.ZodString; targetHostname: z.ZodOptional; syncStatus: z.ZodEnum<{ error: "error"; pending: "pending"; ok: "ok"; drift: "drift"; missing: "missing"; }>; cfRecordId: z.ZodNullable; lastError: z.ZodNullable; createdAt: z.ZodString; updatedAt: z.ZodString; }, z.core.$strip>; type Alias = z.infer; declare const aliasCreateSchema: z.ZodObject<{ zoneId: z.ZodString; name: z.ZodString; purpose: z.ZodDefault>; mode: z.ZodDefault>; targetNodeId: z.ZodString; }, z.core.$strip>; type AliasCreate = z.infer; declare const aliasPatchSchema: z.ZodObject<{ name: z.ZodOptional; purpose: z.ZodOptional>; mode: z.ZodOptional>; targetNodeId: z.ZodOptional; }, z.core.$strip>; type AliasPatch = z.infer; declare const aliasRetargetSchema: z.ZodObject<{ targetNodeId: z.ZodString; }, z.core.$strip>; type AliasRetarget = z.infer; declare const syncDiffOpSchema: z.ZodObject<{ id: z.ZodString; kind: z.ZodEnum<{ create: "create"; update: "update"; delete: "delete"; orphan: "orphan"; proxy_violation: "proxy_violation"; noop: "noop"; }>; entityType: z.ZodEnum<{ orphan: "orphan"; node_a: "node_a"; node_aaaa: "node_aaaa"; alias: "alias"; }>; entityId: z.ZodNullable; recordName: z.ZodString; recordType: z.ZodString; desired: z.ZodNullable>; observed: z.ZodNullable>; detail: z.ZodOptional; }, z.core.$strip>; type SyncDiffOp = z.infer; declare const syncJobSchema: z.ZodObject<{ id: z.ZodString; zoneId: z.ZodString; status: z.ZodEnum<{ pending: "pending"; running: "running"; done: "done"; failed: "failed"; }>; diff: z.ZodOptional; entityType: z.ZodEnum<{ orphan: "orphan"; node_a: "node_a"; node_aaaa: "node_aaaa"; alias: "alias"; }>; entityId: z.ZodNullable; recordName: z.ZodString; recordType: z.ZodString; desired: z.ZodNullable>; observed: z.ZodNullable>; detail: z.ZodOptional; }, z.core.$strip>>>; error: z.ZodNullable; createdAt: z.ZodString; finishedAt: z.ZodNullable; }, z.core.$strip>; type SyncJob = z.infer; declare const syncApplySchema: z.ZodObject<{ opIds: z.ZodOptional>; }, z.core.$strip>; type SyncApply = z.infer; declare const dashboardStatsSchema: z.ZodObject<{ nodes: z.ZodNumber; aliases: z.ZodNumber; syncOk: z.ZodNumber; drift: z.ZodNumber; proxyViolations: z.ZodNumber; orphans: z.ZodNumber; lastSyncAt: z.ZodNullable; nodesWithoutIp: z.ZodNumber; brokenAliases: z.ZodNumber; }, z.core.$strip>; type DashboardStats = z.infer; declare const topologyNodeSchema: z.ZodObject<{ id: z.ZodString; hostname: z.ZodString; role: z.ZodEnum<{ hub: "hub"; gw: "gw"; edge: "edge"; ix: "ix"; }>; locationCode: z.ZodString; ipv4: z.ZodNullable; syncStatus: z.ZodEnum<{ error: "error"; pending: "pending"; ok: "ok"; drift: "drift"; missing: "missing"; }>; }, z.core.$strip>; declare const topologyEdgeSchema: z.ZodObject<{ id: z.ZodString; aliasName: z.ZodString; purpose: z.ZodEnum<{ custom: "custom"; ix: "ix"; geo: "geo"; backup: "backup"; admin: "admin"; }>; fromNodeId: z.ZodString; toHostname: z.ZodString; }, z.core.$strip>; declare const topologySchema: z.ZodObject<{ nodes: z.ZodArray; locationCode: z.ZodString; ipv4: z.ZodNullable; syncStatus: z.ZodEnum<{ error: "error"; pending: "pending"; ok: "ok"; drift: "drift"; missing: "missing"; }>; }, z.core.$strip>>; edges: z.ZodArray; fromNodeId: z.ZodString; toHostname: z.ZodString; }, z.core.$strip>>; locations: z.ZodArray; sortOrder: z.ZodNumber; }, z.core.$strip>>; }, z.core.$strip>; type Topology = z.infer; declare const bindExportSchema: z.ZodObject<{ zoneName: z.ZodString; content: z.ZodString; }, z.core.$strip>; type BindExport = z.infer; declare const orphanIgnoreSchema: z.ZodObject<{ recordName: z.ZodString; recordType: z.ZodString; }, z.core.$strip>; declare class ValidationError extends Error { constructor(message: string); } export { type Alias, type AliasCreate, type AliasMode, type AliasPatch, type AliasPurpose, type AliasRetarget, type AppSettings, type AppSettingsPatch, type AppSwitcherConfig, type AppSwitcherEntry, type BindExport, type CfDnsRecord, type CfZone, type CreateDnsRecordPayload, type DashboardStats, type JwtClaims, type Location, type LoginInput, type LoginRequest, type LoginResponse, type Node, type NodeAddress, type NodeCreate, type NodePatch, type NodeRole, type PatchDnsRecordPayload, type SyncApply, type SyncDiffOp, type SyncJob, type SyncStatus, type Topology, ValidationError, type Zone, type ZoneCreate, type ZonePatch, addressFamilySchema, aliasCreateSchema, aliasModeSchema, aliasPatchSchema, aliasPurposeSchema, aliasRetargetSchema, aliasSchema, appSettingsPatchSchema, appSettingsSchema, appSwitcherConfigSchema, appSwitcherEntrySchema, appSwitcherIconSchema, bindExportSchema, cfDnsRecordSchema, cfZoneSchema, createDnsRecordPayloadSchema, dashboardStatsSchema, locationSchema, loginSchema, nodeAddressSchema, nodeCreateSchema, nodePatchSchema, nodeRoleSchema, nodeSchema, orphanIgnoreSchema, patchDnsRecordPayloadSchema, syncApplySchema, syncDiffOpSchema, syncJobSchema, syncStatusSchema, topologyEdgeSchema, topologyNodeSchema, topologySchema, zoneCreateSchema, zonePatchSchema, zoneSchema };