export interface SyncAdapter {
readonly platform: string;
readonly config: SyncAdapterConfig;
connect(): Promise<void>;
disconnect(): Promise<void>;
isConnected(): boolean;
healthCheck(): Promise<{ healthy: boolean; latencyMs: number }>;
createTicket(ticket: Ticket): Promise<ExternalTicket>;
updateTicket(externalId: string, updates: Partial<Ticket>): Promise<ExternalTicket>;
deleteTicket(externalId: string): Promise<boolean>;
getTicket(externalId: string): Promise<ExternalTicket | null>;
listTickets(options?: ListTicketsOptions): Promise<{
tickets: ExternalTicket[];
cursor?: string;
}>;
addComment(externalTicketId: string, content: string): Promise<ExternalComment>;
getComments(externalTicketId: string): Promise<ExternalComment[]>;
mapStatusToExternal(status: TicketStatus): string;
mapStatusFromExternal(externalStatus: string): TicketStatus;
mapPriorityToExternal(priority: TicketPriority): string | number | undefined;
mapPriorityFromExternal(externalPriority: string | number): TicketPriority;
parseWebhook?(payload: unknown): WebhookEvent | null;
}