import { z } from 'zod'; declare const SYNC_SYNCED = "synced"; declare const SYNC_PENDING_PUSH = "pending_push"; declare const SYNC_PENDING_DELETE = "pending_delete"; declare const SYNC_CONFLICT = "conflict"; declare const SYNC_ERROR = "error"; declare const CERT_OK = "ok"; declare const CERT_WARNING = "warning"; declare const CERT_EXPIRED = "expired"; declare const CERT_ERROR = "error"; declare const CERT_UNKNOWN = "unknown"; declare class ValidationError extends Error { constructor(message: string); } declare function validateDnsRecord(recordType: string, name: string, content: string, ttl: number, proxied: boolean): void; declare function certStatusFromExpiry(daysLeft: number): string; declare function isValidIpv4(ip: string): boolean; declare function dnsNameToSubdomainLabel(recordName: string, zoneName: string): string | null; declare function subdomainLabelToFqdn(label: string, zoneName: string): string; interface ParsedFqdn { zoneName: string; hostname: string; fqdn: string; } declare function fqdnToDisplay(hostname: string, zoneName: string): string; declare function parseFqdn(fqdn: string, knownZones: string[]): ParsedFqdn | null; declare function bindingToFqdn(binding: { hostname: string; zone_name: string; fqdn?: string; }): string; declare const groupSchema: z.ZodObject<{ id: z.ZodNumber; name: z.ZodString; slug: z.ZodString; created_at: z.ZodString; updated_at: z.ZodString; }, z.core.$strip>; declare const groupWithStatsSchema: z.ZodObject<{ id: z.ZodNumber; name: z.ZodString; slug: z.ZodString; created_at: z.ZodString; updated_at: z.ZodString; domain_count: z.ZodNumber; }, z.core.$strip>; declare const serviceGroupTypeSchema: z.ZodEnum<{ vpn: "vpn"; network: "network"; internet: "internet"; bgp: "bgp"; custom: "custom"; }>; declare const serviceGroupSchema: z.ZodObject<{ id: z.ZodNumber; name: z.ZodString; type: z.ZodCatch>; icon: z.ZodNullable; domain: z.ZodNullable; enabled: z.ZodBoolean; created_at: z.ZodString; updated_at: z.ZodString; }, z.core.$strip>; declare const serviceSchema: z.ZodObject<{ id: z.ZodNumber; name: z.ZodString; slug: z.ZodString; service_group_id: z.ZodOptional>; subdomain: z.ZodOptional; enabled: z.ZodOptional; computed_fqdn: z.ZodOptional>; created_at: z.ZodString; updated_at: z.ZodString; }, z.core.$strip>; declare const serviceDomainBindingSchema: z.ZodPipe>; target_ip: z.ZodOptional>; sync_status: z.ZodNullable; }, z.core.$strip>, z.ZodTransform<{ target_ips: string[]; binding_id: number; domain_id: number; zone_name: string; hostname: string; fqdn: string; sync_status: string | null; target_ip?: string | null | undefined; }, { binding_id: number; domain_id: number; zone_name: string; hostname: string; fqdn: string; sync_status: string | null; target_ips?: string[] | undefined; target_ip?: string | null | undefined; }>>; declare const serviceViewSchema: z.ZodObject<{ id: z.ZodNumber; name: z.ZodString; slug: z.ZodString; service_group_id: z.ZodOptional>; computed_fqdn: z.ZodOptional>; created_at: z.ZodString; updated_at: z.ZodString; subdomain: z.ZodDefault; enabled: z.ZodDefault; ips: z.ZodDefault>; domains: z.ZodDefault>; target_ip: z.ZodOptional>; sync_status: z.ZodNullable; }, z.core.$strip>, z.ZodTransform<{ target_ips: string[]; binding_id: number; domain_id: number; zone_name: string; hostname: string; fqdn: string; sync_status: string | null; target_ip?: string | null | undefined; }, { binding_id: number; domain_id: number; zone_name: string; hostname: string; fqdn: string; sync_status: string | null; target_ips?: string[] | undefined; target_ip?: string | null | undefined; }>>>>; }, z.core.$strip>; declare const serviceGroupViewSchema: z.ZodObject<{ id: z.ZodNumber; name: z.ZodString; type: z.ZodCatch>; icon: z.ZodNullable; domain: z.ZodNullable; enabled: z.ZodBoolean; created_at: z.ZodString; updated_at: z.ZodString; services: z.ZodDefault>; computed_fqdn: z.ZodOptional>; created_at: z.ZodString; updated_at: z.ZodString; subdomain: z.ZodDefault; enabled: z.ZodDefault; ips: z.ZodDefault>; domains: z.ZodDefault>; target_ip: z.ZodOptional>; sync_status: z.ZodNullable; }, z.core.$strip>, z.ZodTransform<{ target_ips: string[]; binding_id: number; domain_id: number; zone_name: string; hostname: string; fqdn: string; sync_status: string | null; target_ip?: string | null | undefined; }, { binding_id: number; domain_id: number; zone_name: string; hostname: string; fqdn: string; sync_status: string | null; target_ips?: string[] | undefined; target_ip?: string | null | undefined; }>>>>; }, z.core.$strip>>>; }, z.core.$strip>; declare const serviceGroupsResponseSchema: z.ZodObject<{ groups: z.ZodDefault>; icon: z.ZodNullable; domain: z.ZodNullable; enabled: z.ZodBoolean; created_at: z.ZodString; updated_at: z.ZodString; services: z.ZodDefault>; computed_fqdn: z.ZodOptional>; created_at: z.ZodString; updated_at: z.ZodString; subdomain: z.ZodDefault; enabled: z.ZodDefault; ips: z.ZodDefault>; domains: z.ZodDefault>; target_ip: z.ZodOptional>; sync_status: z.ZodNullable; }, z.core.$strip>, z.ZodTransform<{ target_ips: string[]; binding_id: number; domain_id: number; zone_name: string; hostname: string; fqdn: string; sync_status: string | null; target_ip?: string | null | undefined; }, { binding_id: number; domain_id: number; zone_name: string; hostname: string; fqdn: string; sync_status: string | null; target_ips?: string[] | undefined; target_ip?: string | null | undefined; }>>>>; }, z.core.$strip>>>; }, z.core.$strip>>>; ungrouped: z.ZodDefault>; computed_fqdn: z.ZodOptional>; created_at: z.ZodString; updated_at: z.ZodString; subdomain: z.ZodDefault; enabled: z.ZodDefault; ips: z.ZodDefault>; domains: z.ZodDefault>; target_ip: z.ZodOptional>; sync_status: z.ZodNullable; }, z.core.$strip>, z.ZodTransform<{ target_ips: string[]; binding_id: number; domain_id: number; zone_name: string; hostname: string; fqdn: string; sync_status: string | null; target_ip?: string | null | undefined; }, { binding_id: number; domain_id: number; zone_name: string; hostname: string; fqdn: string; sync_status: string | null; target_ips?: string[] | undefined; target_ip?: string | null | undefined; }>>>>; }, z.core.$strip>>>; }, z.core.$strip>; declare const domainSchema: z.ZodObject<{ id: z.ZodNumber; group_id: z.ZodNullable; zone_name: z.ZodString; cf_zone_id: z.ZodString; status: z.ZodString; last_synced_at: z.ZodNullable; created_at: z.ZodString; updated_at: z.ZodString; }, z.core.$strip>; declare const domainListItemSchema: z.ZodObject<{ id: z.ZodNumber; group_id: z.ZodNullable; zone_name: z.ZodString; cf_zone_id: z.ZodString; status: z.ZodString; last_synced_at: z.ZodNullable; created_at: z.ZodString; updated_at: z.ZodString; group_name: z.ZodNullable; service_count: z.ZodNumber; }, z.core.$strip>; declare const serviceBindingSchema: z.ZodObject<{ id: z.ZodNumber; domain_id: z.ZodNumber; service_id: z.ZodNumber; hostname: z.ZodString; dns_record_id: z.ZodNullable; zone_name: z.ZodString; group_id: z.ZodNullable; group_name: z.ZodNullable; service_name: z.ZodString; service_slug: z.ZodString; target_ip: z.ZodNullable; sync_status: z.ZodNullable; created_at: z.ZodString; updated_at: z.ZodString; }, z.core.$strip>; declare const dnsRecordSchema: z.ZodObject<{ id: z.ZodNumber; domain_id: z.ZodNumber; cf_record_id: z.ZodNullable; record_type: z.ZodString; name: z.ZodString; content: z.ZodString; ttl: z.ZodNumber; proxied: z.ZodBoolean; priority: z.ZodNullable; sync_status: z.ZodString; origin: z.ZodString; last_error: z.ZodNullable; created_at: z.ZodString; updated_at: z.ZodString; }, z.core.$strip>; declare const certificateSchema: z.ZodObject<{ id: z.ZodNumber; domain_id: z.ZodNumber; subdomain_id: z.ZodNullable; hostname: z.ZodString; expires_at: z.ZodNullable; last_checked_at: z.ZodNullable; last_error: z.ZodNullable; status: z.ZodString; created_at: z.ZodString; updated_at: z.ZodString; }, z.core.$strip>; type Group = z.infer; type GroupWithStats = z.infer; type Service = z.infer; type ServiceDomainBinding = z.infer; type ServiceView = z.infer; type ServiceGroup = z.infer; type ServiceGroupView = z.infer; type ServiceGroupsResponse = z.infer; type Domain = z.infer; type DomainListItem = z.infer; type ServiceBinding = z.infer; type DnsRecord = z.infer; type Certificate = z.infer; declare const createGroupSchema: z.ZodObject<{ name: z.ZodString; slug: z.ZodString; }, z.core.$strip>; declare const createServiceSchema: z.ZodObject<{ name: z.ZodString; slug: z.ZodString; }, z.core.$strip>; declare const createServiceWithConfigSchema: z.ZodObject<{ name: z.ZodString; slug: z.ZodString; service_group_id: z.ZodOptional>; ips: z.ZodDefault>; domains: z.ZodDefault; }, z.core.$strip>>>; }, z.core.$strip>; declare const createServiceBindingSchema: z.ZodObject<{ domain_id: z.ZodString; service_id: z.ZodString; hostname: z.ZodOptional; target_ip: z.ZodOptional; }, z.core.$strip>; declare const updateDomainGroupSchema: z.ZodObject<{ group_id: z.ZodNullable; status: z.ZodOptional; }, z.core.$strip>; declare const createDomainSchema: z.ZodObject<{ zone_name: z.ZodString; group_id: z.ZodString; }, z.core.$strip>; declare const loginSchema: z.ZodObject<{ username: z.ZodString; password: z.ZodString; }, z.core.$strip>; declare const createDnsRecordSchema: z.ZodObject<{ record_type: z.ZodEnum<{ A: "A"; AAAA: "AAAA"; CNAME: "CNAME"; TXT: "TXT"; MX: "MX"; }>; name: z.ZodString; content: z.ZodString; ttl: z.ZodNumber; proxied: z.ZodBoolean; }, z.core.$strip>; declare const subdomainSchema: z.ZodObject<{ id: z.ZodNumber; domain_id: z.ZodNumber; name: z.ZodString; fqdn: z.ZodString; created_at: z.ZodString; updated_at: z.ZodString; }, z.core.$strip>; type SubdomainRecord = z.infer; type CreateGroupInput = z.infer; type CreateServiceInput = z.infer; type CreateServiceWithConfigInput = z.infer; declare const updateServiceConfigSchema: z.ZodObject<{ name: z.ZodOptional; slug: z.ZodOptional; service_group_id: z.ZodOptional>; ips: z.ZodOptional>; domains: z.ZodOptional; }, z.core.$strip>>>; }, z.core.$strip>; type UpdateServiceConfigInput = z.infer; declare const createServiceGroupSchema: z.ZodObject<{ name: z.ZodString; type: z.ZodDefault>; icon: z.ZodOptional>; domain: z.ZodOptional>; }, z.core.$strip>; declare const toggleEnabledSchema: z.ZodObject<{ enabled: z.ZodBoolean; }, z.core.$strip>; type CreateServiceGroupInput = z.infer; type ToggleEnabledInput = z.infer; type CreateServiceBindingInput = z.infer; type CreateDomainInput = z.infer; type LoginInput = z.infer; type CreateDnsRecordInput = z.infer; interface Subdomain { id: number; domain_id: number; name: string; fqdn: string; created_at: string; updated_at: string; } interface ServiceBindingView { id: number; domain_id: number; service_id: number; hostname: string; dns_record_id: number | null; zone_name: string; group_id: number | null; group_name: string | null; service_name: string; service_slug: string; target_ip: string | null; sync_status: string | null; created_at: string; updated_at: string; } interface ServiceDomainBindingView { binding_id: number; domain_id: number; zone_name: string; hostname: string; fqdn: string; target_ips: string[]; sync_status: string | null; } interface SyncJob { id: string; status: string; domain_id: number | null; message: string | null; created_at: string; finished_at: string | null; } interface CfZone { id: string; name: string; status: string; } interface CfDnsRecord { id?: string; type: string; name: string; content: string; ttl: number; proxied?: boolean; priority?: number; } interface CreateDnsRecordPayload { type: string; name: string; content: string; ttl: number; proxied?: boolean; priority?: number; } interface LoginRequest { username: string; password: string; } interface LoginResponse { token: string; expires_at: string; } interface JwtClaims { sub: string; exp: number; } export { CERT_ERROR, CERT_EXPIRED, CERT_OK, CERT_UNKNOWN, CERT_WARNING, type Certificate, type CfDnsRecord, type CfZone, type CreateDnsRecordInput, type CreateDnsRecordPayload, type CreateDomainInput, type CreateGroupInput, type CreateServiceBindingInput, type CreateServiceGroupInput, type CreateServiceInput, type CreateServiceWithConfigInput, type DnsRecord, type Domain, type DomainListItem, type Group, type GroupWithStats, type JwtClaims, type LoginInput, type LoginRequest, type LoginResponse, type ParsedFqdn, SYNC_CONFLICT, SYNC_ERROR, SYNC_PENDING_DELETE, SYNC_PENDING_PUSH, SYNC_SYNCED, type Service, type ServiceBinding, type ServiceBindingView, type ServiceDomainBinding, type ServiceDomainBindingView, type ServiceGroup, type ServiceGroupView, type ServiceGroupsResponse, type ServiceView, type Subdomain, type SubdomainRecord, type SyncJob, type ToggleEnabledInput, type UpdateServiceConfigInput, ValidationError, bindingToFqdn, certStatusFromExpiry, certificateSchema, createDnsRecordSchema, createDomainSchema, createGroupSchema, createServiceBindingSchema, createServiceGroupSchema, createServiceSchema, createServiceWithConfigSchema, dnsNameToSubdomainLabel, dnsRecordSchema, domainListItemSchema, domainSchema, fqdnToDisplay, groupSchema, groupWithStatsSchema, isValidIpv4, loginSchema, parseFqdn, serviceBindingSchema, serviceDomainBindingSchema, serviceGroupSchema, serviceGroupTypeSchema, serviceGroupViewSchema, serviceGroupsResponseSchema, serviceSchema, serviceViewSchema, subdomainLabelToFqdn, subdomainSchema, toggleEnabledSchema, updateDomainGroupSchema, updateServiceConfigSchema, validateDnsRecord };