import { z } from "zod"; export declare const TailscaleDeviceSchema: z.ZodObject<{ id: z.ZodString; name: z.ZodString; hostname: z.ZodString; clientVersion: z.ZodString; updateAvailable: z.ZodBoolean; os: z.ZodString; created: z.ZodString; lastSeen: z.ZodString; keyExpiryDisabled: z.ZodBoolean; expires: z.ZodString; authorized: z.ZodBoolean; isExternal: z.ZodBoolean; machineKey: z.ZodString; nodeKey: z.ZodString; blocksIncomingConnections: z.ZodBoolean; enabledRoutes: z.ZodDefault>>; advertisedRoutes: z.ZodDefault>>; clientConnectivity: z.ZodOptional; derp: z.ZodString; mappingVariesByDestIP: z.ZodBoolean; latency: z.ZodOptional>; clientSupports: z.ZodObject<{ hairPinning: z.ZodBoolean; ipv6: z.ZodBoolean; pcp: z.ZodBoolean; pmp: z.ZodBoolean; udp: z.ZodBoolean; upnp: z.ZodBoolean; }, z.core.$strip>; }, z.core.$strip>>; addresses: z.ZodArray; user: z.ZodString; tags: z.ZodOptional>; }, z.core.$strip>; export declare const TailscaleNetworkStatusSchema: z.ZodObject<{ self: z.ZodObject<{ id: z.ZodString; name: z.ZodString; hostname: z.ZodString; clientVersion: z.ZodString; updateAvailable: z.ZodBoolean; os: z.ZodString; created: z.ZodString; lastSeen: z.ZodString; keyExpiryDisabled: z.ZodBoolean; expires: z.ZodString; authorized: z.ZodBoolean; isExternal: z.ZodBoolean; machineKey: z.ZodString; nodeKey: z.ZodString; blocksIncomingConnections: z.ZodBoolean; enabledRoutes: z.ZodDefault>>; advertisedRoutes: z.ZodDefault>>; clientConnectivity: z.ZodOptional; derp: z.ZodString; mappingVariesByDestIP: z.ZodBoolean; latency: z.ZodOptional>; clientSupports: z.ZodObject<{ hairPinning: z.ZodBoolean; ipv6: z.ZodBoolean; pcp: z.ZodBoolean; pmp: z.ZodBoolean; udp: z.ZodBoolean; upnp: z.ZodBoolean; }, z.core.$strip>; }, z.core.$strip>>; addresses: z.ZodArray; user: z.ZodString; tags: z.ZodOptional>; }, z.core.$strip>; magicDNSSuffix: z.ZodString; magicDNSEnabled: z.ZodBoolean; domainName: z.ZodString; currentTailnet: z.ZodObject<{ name: z.ZodString; magicDNSSuffix: z.ZodString; magicDNSEnabled: z.ZodBoolean; }, z.core.$strip>; peers: z.ZodArray>>; advertisedRoutes: z.ZodDefault>>; clientConnectivity: z.ZodOptional; derp: z.ZodString; mappingVariesByDestIP: z.ZodBoolean; latency: z.ZodOptional>; clientSupports: z.ZodObject<{ hairPinning: z.ZodBoolean; ipv6: z.ZodBoolean; pcp: z.ZodBoolean; pmp: z.ZodBoolean; udp: z.ZodBoolean; upnp: z.ZodBoolean; }, z.core.$strip>; }, z.core.$strip>>; addresses: z.ZodArray; user: z.ZodString; tags: z.ZodOptional>; }, z.core.$strip>>; }, z.core.$strip>; export declare const TailscaleCLIStatusSchema: z.ZodObject<{ Version: z.ZodString; TUN: z.ZodBoolean; BackendState: z.ZodString; AuthURL: z.ZodOptional; TailscaleIPs: z.ZodArray; Self: z.ZodObject<{ ID: z.ZodString; PublicKey: z.ZodString; HostName: z.ZodString; DNSName: z.ZodString; OS: z.ZodString; UserID: z.ZodNumber; TailscaleIPs: z.ZodArray; Capabilities: z.ZodOptional>; Online: z.ZodOptional; ExitNode: z.ZodOptional; ExitNodeOption: z.ZodOptional; Active: z.ZodOptional; }, z.core.$strip>; Peer: z.ZodOptional; CurAddr: z.ZodOptional; Relay: z.ZodOptional; LastWrite: z.ZodOptional; LastSeen: z.ZodOptional; Online: z.ZodOptional; ExitNode: z.ZodOptional; ExitNodeOption: z.ZodOptional; Active: z.ZodOptional; RxBytes: z.ZodOptional; TxBytes: z.ZodOptional; }, z.core.$strip>>>; ExitNodeStatus: z.ZodOptional; }, z.core.$strip>>; MagicDNSSuffix: z.ZodOptional; CurrentTailnet: z.ZodOptional>; }, z.core.$strip>; export declare const ListDevicesRequestSchema: z.ZodObject<{ includeRoutes: z.ZodDefault>; }, z.core.$strip>; export declare const DeviceActionRequestSchema: z.ZodObject<{ deviceId: z.ZodString; action: z.ZodEnum<{ authorize: "authorize"; deauthorize: "deauthorize"; delete: "delete"; "expire-key": "expire-key"; }>; }, z.core.$strip>; export declare const NetworkStatusRequestSchema: z.ZodObject<{ format: z.ZodDefault>>; }, z.core.$strip>; export declare const RouteActionRequestSchema: z.ZodObject<{ deviceId: z.ZodString; routes: z.ZodArray; action: z.ZodEnum<{ enable: "enable"; disable: "disable"; }>; }, z.core.$strip>; export declare const ACLRuleSchema: z.ZodObject<{ action: z.ZodEnum<{ accept: "accept"; drop: "drop"; }>; src: z.ZodArray; dst: z.ZodArray; proto: z.ZodOptional; }, z.core.$strip>; export declare const ACLTestSchema: z.ZodObject<{ src: z.ZodString; accept: z.ZodArray; deny: z.ZodOptional>; }, z.core.$strip>; export declare const SSHRuleSchema: z.ZodObject<{ action: z.ZodEnum<{ check: "check"; accept: "accept"; }>; src: z.ZodArray; dst: z.ZodArray; users: z.ZodArray; checkPeriod: z.ZodOptional; }, z.core.$strip>; export declare const ACLConfigSchema: z.ZodObject<{ groups: z.ZodOptional>>; tagOwners: z.ZodOptional>>; acls: z.ZodArray; src: z.ZodArray; dst: z.ZodArray; proto: z.ZodOptional; }, z.core.$strip>>; tests: z.ZodOptional; deny: z.ZodOptional>; }, z.core.$strip>>>; ssh: z.ZodOptional; src: z.ZodArray; dst: z.ZodArray; users: z.ZodArray; checkPeriod: z.ZodOptional; }, z.core.$strip>>>; }, z.core.$strip>; export declare const DNSConfigSchema: z.ZodObject<{ dns: z.ZodArray; magicDNS: z.ZodOptional; nameservers: z.ZodOptional>; restricted: z.ZodOptional>>; }, z.core.$strip>>; }, z.core.$strip>; export declare const SearchPathSchema: z.ZodObject<{ searchPaths: z.ZodArray; }, z.core.$strip>; export declare const AuthKeySchema: z.ZodObject<{ id: z.ZodString; key: z.ZodString; description: z.ZodOptional; created: z.ZodString; expires: z.ZodString; revoked: z.ZodBoolean; capabilities: z.ZodObject<{ devices: z.ZodObject<{ create: z.ZodObject<{ reusable: z.ZodBoolean; ephemeral: z.ZodBoolean; preauthorized: z.ZodBoolean; tags: z.ZodOptional>; }, z.core.$strip>; }, z.core.$strip>; }, z.core.$strip>; }, z.core.$strip>; export declare const CreateAuthKeyRequestSchema: z.ZodObject<{ capabilities: z.ZodObject<{ devices: z.ZodObject<{ create: z.ZodObject<{ reusable: z.ZodOptional; ephemeral: z.ZodOptional; preauthorized: z.ZodOptional; tags: z.ZodOptional>; }, z.core.$strip>; }, z.core.$strip>; }, z.core.$strip>; expirySeconds: z.ZodOptional; description: z.ZodOptional; }, z.core.$strip>; export declare const ACLRequestSchema: z.ZodObject<{ operation: z.ZodEnum<{ get: "get"; update: "update"; validate: "validate"; }>; aclConfig: z.ZodOptional>>; tagOwners: z.ZodOptional>>; acls: z.ZodArray; src: z.ZodArray; dst: z.ZodArray; proto: z.ZodOptional; }, z.core.$strip>>; tests: z.ZodOptional; deny: z.ZodOptional>; }, z.core.$strip>>>; ssh: z.ZodOptional; src: z.ZodArray; dst: z.ZodArray; users: z.ZodArray; checkPeriod: z.ZodOptional; }, z.core.$strip>>>; }, z.core.$strip>>; }, z.core.$strip>; export declare const DNSRequestSchema: z.ZodObject<{ operation: z.ZodEnum<{ get_nameservers: "get_nameservers"; set_nameservers: "set_nameservers"; get_preferences: "get_preferences"; set_preferences: "set_preferences"; get_searchpaths: "get_searchpaths"; set_searchpaths: "set_searchpaths"; }>; nameservers: z.ZodOptional>; magicDNS: z.ZodOptional; searchPaths: z.ZodOptional>; }, z.core.$strip>; export declare const KeyManagementRequestSchema: z.ZodObject<{ operation: z.ZodEnum<{ delete: "delete"; create: "create"; list: "list"; }>; keyId: z.ZodOptional; keyConfig: z.ZodOptional; ephemeral: z.ZodOptional; preauthorized: z.ZodOptional; tags: z.ZodOptional>; }, z.core.$strip>; }, z.core.$strip>; }, z.core.$strip>; expirySeconds: z.ZodOptional; description: z.ZodOptional; }, z.core.$strip>>; }, z.core.$strip>; export declare const TailnetInfoRequestSchema: z.ZodObject<{ includeDetails: z.ZodOptional; }, z.core.$strip>; export declare const FileSharingRequestSchema: z.ZodObject<{ operation: z.ZodEnum<{ enable: "enable"; disable: "disable"; get_status: "get_status"; }>; deviceId: z.ZodOptional; }, z.core.$strip>; export declare const ExitNodeRequestSchema: z.ZodObject<{ operation: z.ZodEnum<{ set: "set"; list: "list"; clear: "clear"; advertise: "advertise"; stop_advertising: "stop_advertising"; }>; deviceId: z.ZodOptional; routes: z.ZodOptional>; }, z.core.$strip>; export declare const NetworkLockRequestSchema: z.ZodObject<{ operation: z.ZodEnum<{ enable: "enable"; disable: "disable"; status: "status"; add_key: "add_key"; remove_key: "remove_key"; list_keys: "list_keys"; }>; publicKey: z.ZodOptional; keyId: z.ZodOptional; }, z.core.$strip>; export declare const SubnetRouterRequestSchema: z.ZodObject<{ operation: z.ZodEnum<{ list_routes: "list_routes"; advertise_routes: "advertise_routes"; accept_routes: "accept_routes"; remove_routes: "remove_routes"; }>; deviceId: z.ZodOptional; routes: z.ZodOptional>; }, z.core.$strip>; export declare const WebhookRequestSchema: z.ZodObject<{ operation: z.ZodEnum<{ delete: "delete"; create: "create"; list: "list"; test: "test"; }>; webhookId: z.ZodOptional; config: z.ZodOptional; events: z.ZodArray; description: z.ZodOptional; }, z.core.$strip>>; }, z.core.$strip>; export declare const PolicyFileRequestSchema: z.ZodObject<{ operation: z.ZodEnum<{ get: "get"; update: "update"; test_access: "test_access"; }>; policy: z.ZodOptional; testRequest: z.ZodOptional; }, z.core.$strip>>; }, z.core.$strip>; export declare const DeviceTaggingRequestSchema: z.ZodObject<{ operation: z.ZodEnum<{ get_tags: "get_tags"; set_tags: "set_tags"; add_tags: "add_tags"; remove_tags: "remove_tags"; }>; deviceId: z.ZodString; tags: z.ZodOptional>; }, z.core.$strip>; export declare const SSHManagementRequestSchema: z.ZodObject<{ operation: z.ZodEnum<{ get_ssh_users: "get_ssh_users"; add_ssh_user: "add_ssh_user"; remove_ssh_user: "remove_ssh_user"; get_ssh_settings: "get_ssh_settings"; update_ssh_settings: "update_ssh_settings"; }>; deviceId: z.ZodOptional; username: z.ZodOptional; sshSettings: z.ZodOptional; enabled: z.ZodOptional; }, z.core.$strip>>; }, z.core.$strip>; export declare const NetworkStatsRequestSchema: z.ZodObject<{ operation: z.ZodEnum<{ get_device_stats: "get_device_stats"; get_network_overview: "get_network_overview"; get_traffic_stats: "get_traffic_stats"; }>; deviceId: z.ZodOptional; timeRange: z.ZodOptional>; }, z.core.$strip>; export declare const LoggingRequestSchema: z.ZodObject<{ operation: z.ZodEnum<{ get_log_config: "get_log_config"; set_log_level: "set_log_level"; get_audit_logs: "get_audit_logs"; }>; logLevel: z.ZodOptional>; component: z.ZodOptional; }, z.core.$strip>; export declare const UserManagementRequestSchema: z.ZodObject<{ operation: z.ZodEnum<{ list_users: "list_users"; get_user: "get_user"; update_user_role: "update_user_role"; }>; userId: z.ZodOptional; role: z.ZodOptional>; }, z.core.$strip>; export declare const DevicePostureRequestSchema: z.ZodObject<{ operation: z.ZodEnum<{ get_posture: "get_posture"; set_posture_policy: "set_posture_policy"; check_compliance: "check_compliance"; }>; deviceId: z.ZodOptional; policy: z.ZodOptional; allowedOSVersions: z.ZodOptional>; requiredSoftware: z.ZodOptional>; }, z.core.$strip>>; }, z.core.$strip>; export declare const TailnetInfoSchema: z.ZodObject<{ name: z.ZodString; id: z.ZodString; domain: z.ZodString; accountId: z.ZodString; dnsConfig: z.ZodOptional; domains: z.ZodArray; magicDNS: z.ZodBoolean; }, z.core.$strip>>; organizationName: z.ZodOptional; organization: z.ZodOptional; createdAt: z.ZodString; created: z.ZodOptional; dns: z.ZodOptional; magicDNS: z.ZodBoolean; }, z.core.$strip>>; fileSharing: z.ZodOptional; serviceCollection: z.ZodOptional; networkLockEnabled: z.ZodOptional; oidcIdentityProviderURL: z.ZodOptional; keyExpiryDisabled: z.ZodOptional; machineAuthorizationTimeout: z.ZodOptional; deviceApprovalRequired: z.ZodOptional; }, z.core.$strip>; export declare const ACLValidationResultSchema: z.ZodObject<{ valid: z.ZodBoolean; errors: z.ZodOptional>; warnings: z.ZodOptional>; }, z.core.$strip>; export declare const AuthKeyListSchema: z.ZodObject<{ keys: z.ZodArray; created: z.ZodString; expires: z.ZodString; revoked: z.ZodBoolean; capabilities: z.ZodObject<{ devices: z.ZodObject<{ create: z.ZodObject<{ reusable: z.ZodBoolean; ephemeral: z.ZodBoolean; preauthorized: z.ZodBoolean; tags: z.ZodOptional>; }, z.core.$strip>; }, z.core.$strip>; }, z.core.$strip>; }, z.core.$strip>>; }, z.core.$strip>; export declare const DeviceRoutesSchema: z.ZodObject<{ advertisedRoutes: z.ZodArray; enabledRoutes: z.ZodArray; isExitNode: z.ZodOptional; }, z.core.$strip>; export declare const NetworkLockStatusSchema: z.ZodObject<{ enabled: z.ZodBoolean; nodeKey: z.ZodOptional; publicKey: z.ZodOptional; key: z.ZodOptional; trustedKeys: z.ZodOptional>>; }, z.core.$strip>; export declare const WebhookSchema: z.ZodObject<{ id: z.ZodString; endpointUrl: z.ZodString; description: z.ZodOptional; secret: z.ZodOptional; events: z.ZodArray; createdAt: z.ZodString; lastDelivery: z.ZodOptional; status: z.ZodOptional>; }, z.core.$strip>; export declare const WebhookListSchema: z.ZodObject<{ webhooks: z.ZodArray; secret: z.ZodOptional; events: z.ZodArray; createdAt: z.ZodString; lastDelivery: z.ZodOptional; status: z.ZodOptional>; }, z.core.$strip>>; }, z.core.$strip>; export declare const ACLTestResultSchema: z.ZodObject<{ matches: z.ZodBoolean; match: z.ZodOptional; allowed: z.ZodOptional; rule: z.ZodOptional; error: z.ZodOptional; }, z.core.$strip>; export declare const SSHSettingsSchema: z.ZodObject<{ enabled: z.ZodBoolean; checkPeriod: z.ZodOptional; rules: z.ZodOptional; src: z.ZodArray; dst: z.ZodArray; users: z.ZodArray; checkPeriod: z.ZodOptional; }, z.core.$strip>>>; }, z.core.$strip>; export declare const NetworkStatsSchema: z.ZodObject<{ totalDevices: z.ZodNumber; activeDevices: z.ZodNumber; totalTraffic: z.ZodOptional>; period: z.ZodOptional; }, z.core.$strip>; export declare const DeviceStatsSchema: z.ZodObject<{ deviceId: z.ZodString; traffic: z.ZodObject<{ bytesIn: z.ZodNumber; bytesOut: z.ZodNumber; packetsIn: z.ZodNumber; packetsOut: z.ZodNumber; }, z.core.$strip>; connections: z.ZodOptional; bytesIn: z.ZodNumber; bytesOut: z.ZodNumber; }, z.core.$strip>>>; }, z.core.$strip>; export declare const UserSchema: z.ZodObject<{ id: z.ZodString; loginName: z.ZodString; displayName: z.ZodString; profilePicUrl: z.ZodOptional; role: z.ZodEnum<{ admin: "admin"; user: "user"; auditor: "auditor"; }>; created: z.ZodString; lastSeen: z.ZodOptional; }, z.core.$strip>; export declare const UserListSchema: z.ZodObject<{ users: z.ZodArray; role: z.ZodEnum<{ admin: "admin"; user: "user"; auditor: "auditor"; }>; created: z.ZodString; lastSeen: z.ZodOptional; }, z.core.$strip>>; }, z.core.$strip>; export declare const AuditLogEntrySchema: z.ZodObject<{ id: z.ZodString; timestamp: z.ZodString; action: z.ZodString; actor: z.ZodString; target: z.ZodOptional; details: z.ZodOptional>; }, z.core.$strip>; export declare const AuditLogListSchema: z.ZodObject<{ logs: z.ZodArray; details: z.ZodOptional>; }, z.core.$strip>>; }, z.core.$strip>; export declare const DevicePostureSchema: z.ZodObject<{ deviceId: z.ZodString; osVersion: z.ZodString; updateAvailable: z.ZodBoolean; requiredSoftware: z.ZodOptional>>; compliance: z.ZodObject<{ status: z.ZodEnum<{ unknown: "unknown"; compliant: "compliant"; "non-compliant": "non-compliant"; }>; issues: z.ZodOptional>; }, z.core.$strip>; }, z.core.$strip>; export declare const PosturePolicySchema: z.ZodObject<{ requireUpdate: z.ZodOptional; allowedOSVersions: z.ZodOptional>; requiredSoftware: z.ZodOptional>; blockNonCompliant: z.ZodOptional; }, z.core.$strip>; export interface TailscaleAPIResponse { success: boolean; data?: T; error?: string; statusCode?: number; } export interface CLIResponse { success: boolean; data?: T; error?: string; stderr?: string; } export interface ToolResult { content: Array<{ type: "text"; text: string; }>; isError?: boolean; } export interface TailscaleConfig { /** API key for authentication (mutually exclusive with OAuth) */ apiKey?: string; /** Tailnet name or "-" for the default tailnet */ tailnet?: string; /** Path to the Tailscale CLI binary */ cliPath?: string; /** OAuth client ID (for OAuth authentication) */ oauthClientId?: string; /** OAuth client secret (for OAuth authentication) */ oauthClientSecret?: string; /** Base URL for Tailscale API (default: https://api.tailscale.com) */ apiBaseUrl?: string; } export declare class TailscaleError extends Error { readonly code?: string | undefined; readonly statusCode?: number | undefined; constructor(message: string, code?: string | undefined, statusCode?: number | undefined); } export declare class CLIError extends Error { readonly stderr?: string | undefined; readonly exitCode?: number | undefined; constructor(message: string, stderr?: string | undefined, exitCode?: number | undefined); } export type TailscaleDevice = z.infer; export type TailscaleNetworkStatus = z.infer; export type ACLConfig = z.infer; export type ACLRequest = z.infer; export type ACLRule = z.infer; export type ACLTest = z.infer; export type ACLTestResult = z.infer; export type ACLValidationResult = z.infer; export type AuditLogEntry = z.infer; export type AuditLogList = z.infer; export type AuthKey = z.infer; export type AuthKeyList = z.infer; export type CreateAuthKeyRequest = z.infer; export type DeviceActionRequest = z.infer; export type DevicePosture = z.infer; export type DevicePostureRequest = z.infer; export type DeviceRoutes = z.infer; export type DeviceStats = z.infer; export type DeviceTaggingRequest = z.infer; export type DNSConfig = z.infer; export type DNSRequest = z.infer; export type ExitNodeRequest = z.infer; export type FileSharingRequest = z.infer; export type KeyManagementRequest = z.infer; export type ListDevicesRequest = z.infer; export type LoggingRequest = z.infer; export type NetworkLockRequest = z.infer; export type NetworkLockStatus = z.infer; export type NetworkStats = z.infer; export type NetworkStatsRequest = z.infer; export type NetworkStatusRequest = z.infer; export type PolicyFileRequest = z.infer; export type PosturePolicy = z.infer; export type RouteActionRequest = z.infer; export type SearchPath = z.infer; export type SSHManagementRequest = z.infer; export type SSHRule = z.infer; export type SSHSettings = z.infer; export type SubnetRouterRequest = z.infer; export type TailnetInfo = z.infer; export type TailnetInfoRequest = z.infer; export type TailscaleCLIStatus = z.infer; export type User = z.infer; export type UserList = z.infer; export type UserManagementRequest = z.infer; export type Webhook = z.infer; export type WebhookList = z.infer; export type WebhookRequest = z.infer; //# sourceMappingURL=types.d.ts.map