export interface PangolinSite { siteId: string; name: string; orgId: string; niceId: string; pubKey?: string; subnet?: string; megabytesIn?: number; megabytesOut?: number; lastSeen?: string; online?: boolean; type?: string; } export interface PangolinExitNode { exitNodeId: string; name: string; location?: string; region?: string; online: boolean; capacity?: number; latency?: number; } export interface PangolinResource { resourceId: string; siteId: string; orgId: string; name: string; subdomain?: string; fullDomain?: string; ssl?: boolean; blockAccess?: boolean; active?: boolean; proxyPort?: number; protocol?: string; domainBindings?: string[]; } export interface PangolinNewt { newtId: string; secret: string; siteId: string; } export interface CreateSitePayload { name: string; type?: string; subnet?: string; exitNodeId?: string; } export interface CreateHttpResourcePayload { name: string; type: 'http'; domainId: string; subdomain?: string; http?: boolean; ssl?: boolean; enabled?: boolean; } export interface CreateRawResourcePayload { name: string; type: 'tcp' | 'udp'; proxyPort: number; stickySession?: boolean; enabled?: boolean; } export type CreateResourcePayload = CreateHttpResourcePayload | CreateRawResourcePayload; export interface CreateTargetPayload { method: 'http' | 'https'; host: string; port: number; } export interface PangolinDomain { domainId: string; baseDomain: string; verified: boolean; type?: string; failed?: boolean; configManaged?: boolean; } export interface UpdateResourcePayload { name?: string; subdomain?: string; fullDomain?: string; ssl?: boolean; active?: boolean; blockAccess?: boolean; proxyPort?: number; protocol?: string; domainBindings?: string[]; } export interface PangolinCertificate { certId: string; domainId: string; domain: string; status: 'PENDING' | 'ACTIVE' | 'EXPIRED' | 'FAILED'; issuedAt?: string; expiresAt?: string; autoRenew?: boolean; issuer?: string; } export interface UpdateCertificatePayload { autoRenew?: boolean; } export interface PangolinConnectedClient { clientId: string; resourceId: string; ipAddress: string; connectedAt: string; lastSeen: string; bytesIn: number; bytesOut: number; online: boolean; } declare class PangolinClient { private get baseUrl(); private get apiKey(); private get orgId(); get configured(): boolean; private request; healthCheck(): Promise; listSites(): Promise; listExitNodes(): Promise; getSite(siteId: string): Promise; createSite(data: CreateSitePayload): Promise; deleteSite(siteId: string): Promise; listResources(): Promise; getResource(resourceId: string): Promise; createResource(data: CreateResourcePayload): Promise; updateResource(resourceId: string, data: UpdateResourcePayload): Promise; deleteResource(resourceId: string): Promise; createTarget(resourceId: string, data: CreateTargetPayload): Promise; listDomains(): Promise; listResourcesForSite(siteId: string): Promise; getResourceByNiceId(siteId: string, niceId: string): Promise; getCertificate(domainId: string, domain: string): Promise; updateCertificate(certId: string, data: UpdateCertificatePayload): Promise; listClients(siteResourceId: string): Promise; } export declare const pangolinClient: PangolinClient; export {}; //# sourceMappingURL=pangolin.client.d.ts.map