export interface PylonConfig { apiToken: string; } export interface PaginationParams { limit?: number; cursor?: string; } export interface PaginatedResponse { data: T[]; pagination: { cursor: string | null; has_next_page: boolean; }; request_id: string; } export interface SingleResponse { data: T; request_id: string; } export interface Organization { id: string; name: string; } export interface Account { id: string; name: string; domains?: string[]; primary_domain?: string; logo_url?: string; owner_id?: string; channels?: object[]; custom_fields?: object; external_ids?: object[]; tags?: string[]; } export interface Contact { id: string; name: string; email?: string; emails?: string[]; avatar_url?: string; account?: { id: string; name: string; }; custom_fields?: object; portal_role?: string; } export interface Issue { id: string; title: string; state: string; priority?: string; body_html?: string; assignee_id?: string; team_id?: string; account_id?: string; contact_id?: string; requester_id?: string; tags?: string[]; created_at?: string; updated_at?: string; customer_portal_visible?: boolean; issue_type?: string; } export interface Message { id: string; message_html: string; author: { avatar_url?: string; name: string; contact?: { email: string; id: string; }; user?: { email: string; id: string; }; }; is_private: boolean; source: string; thread_id: string; timestamp: string; file_urls?: string[]; email_info?: { from_email: string; to_emails: string[]; cc_emails?: string[]; bcc_emails?: string[]; }; } export interface Tag { id: string; value: string; object_type: 'account' | 'issue' | 'contact'; hex_color?: string; } export interface Team { id: string; name: string; users: { email: string; id: string; }[]; } export interface User { id: string; email: string; name?: string; } export declare class PylonClient { private apiToken; constructor(config: PylonConfig); private request; getMe(): Promise>; listAccounts(params?: PaginationParams): Promise>; getAccount(id: string): Promise>; createAccount(data: Partial & { name: string; }): Promise>; updateAccount(id: string, data: Partial): Promise>; deleteAccount(id: string): Promise>; searchAccounts(filter: object, params?: PaginationParams): Promise>; listContacts(params?: PaginationParams): Promise>; getContact(id: string): Promise>; createContact(data: Partial & { name: string; }): Promise>; updateContact(id: string, data: Partial): Promise>; deleteContact(id: string): Promise>; searchContacts(filter: object, params?: PaginationParams): Promise>; listIssues(startTime: string, endTime: string, params?: PaginationParams): Promise>; getIssue(id: string): Promise>; createIssue(data: { title: string; body_html: string; account_id?: string; assignee_id?: string; contact_id?: string; requester_id?: string; user_id?: string; tags?: string[]; attachment_urls?: string[]; custom_fields?: object[]; priority?: 'urgent' | 'high' | 'medium' | 'low'; destination_metadata?: object; }): Promise>; updateIssue(id: string, data: { state?: string; title?: string; tags?: string[]; assignee_id?: string; team_id?: string; account_id?: string; customer_portal_visible?: boolean; priority?: 'urgent' | 'high' | 'medium' | 'low'; }): Promise>; deleteIssue(id: string): Promise>; searchIssues(filter: object, params?: PaginationParams): Promise>; snoozeIssue(id: string, snooze_until: string): Promise>; getIssueFollowers(id: string, params?: PaginationParams): Promise>; updateIssueFollowers(id: string, data: { user_ids?: string[]; contact_ids?: string[]; operation?: 'add' | 'remove'; }): Promise>; redactMessage(issueId: string, messageId: string): Promise>; listTags(params?: PaginationParams): Promise>; getTag(id: string): Promise>; createTag(data: { value: string; object_type: 'account' | 'issue' | 'contact'; hex_color?: string; }): Promise>; updateTag(id: string, data: { value?: string; hex_color?: string; }): Promise>; deleteTag(id: string): Promise>; listTeams(params?: PaginationParams): Promise>; getTeam(id: string): Promise>; createTeam(data: { name?: string; user_ids?: string[]; }): Promise>; updateTeam(id: string, data: { name?: string; user_ids?: string[]; }): Promise>; } //# sourceMappingURL=pylon-client.d.ts.map