export interface IncidentioUser { id: string; name: string; email?: string; role?: string; slack_user_id?: string; } export interface IncidentioActor { alert?: { id: string; title: string; }; api_key?: { id: string; name: string; }; user?: IncidentioUser; workflow?: { id: string; name: string; }; } export interface IncidentioIncident { id: string; reference: string; name: string; summary?: string; permalink?: string; visibility: string; mode: string; creator: IncidentioActor; incident_status: { id: string; name: string; category: string; }; incident_type?: { id: string; name: string; }; severity?: { id: string; name: string; rank: number; }; slack_channel_url?: string; postmortem_document_url?: string; created_at: string; updated_at: string; } export interface IncidentioFollowUp { id: string; incident_id: string; title: string; description?: string; status: 'outstanding' | 'completed' | 'deleted' | 'not_doing'; creator: IncidentioActor; assignee?: IncidentioUser | null; assignee_team?: { id: string; name: string; } | null; labels: string[]; priority?: { id: string; name: string; rank: number; } | null; category?: { id: string; name: string; } | null; external_issue_reference?: { issue_name: string; issue_permalink: string; provider: string; } | null; completed_at?: string; created_at: string; updated_at: string; } export interface IncidentioAction { id: string; incident_id: string; description: string; status: 'outstanding' | 'completed' | 'deleted' | 'not_doing'; creator: IncidentioActor; assignee?: IncidentioUser; completed_at?: string; created_at: string; updated_at: string; } export interface IncidentioIncidentUpdate { id: string; incident_id: string; updater: IncidentioActor; new_incident_status: { id: string; name: string; category: string; }; message?: string; merged_into_incident_id?: string; new_severity?: { id: string; name: string; rank: number; }; created_at: string; } export interface IncidentioAlertAttributeValue { catalog_entry?: { id: string; name: string; catalog_type_id?: string; }; label?: string; literal?: string; } export interface IncidentioAlertAttributeEntry { attribute: { id: string; name: string; type: string; array: boolean; required: boolean; emoji?: string; }; value?: IncidentioAlertAttributeValue; array_value?: IncidentioAlertAttributeValue[]; } export interface IncidentioAlert { id: string; alert_source_id: string; deduplication_key: string; status: 'firing' | 'resolved'; title: string; attributes: IncidentioAlertAttributeEntry[]; alert_group_ids?: string[]; description?: string; resolved_at?: string; source_url?: string; created_at: string; updated_at: string; } export interface IncidentioEscalation { id: string; status: 'pending' | 'triggered' | 'acked' | 'resolved' | 'expired' | 'cancelled' | 'snoozed' | 'delayed' | 'pending_repeat'; title: string; description: string; priority: { name: string; }; creator: IncidentioActor; escalation_path_id?: string; events: Array<{ id: string; event: 'entered_grace_period' | 'triggered' | 'notified_users' | 'notified_channels' | 'acked' | 'cancelled' | 'resolved' | 'expired'; occurred_at: string; urgency?: 'high' | 'low'; users?: IncidentioUser[]; channels?: Array<{ microsoft_teams_channel_id?: string; microsoft_teams_team_id?: string; slack_channel_id?: string; slack_team_id?: string; }>; }>; related_incidents: Array<{ id: string; external_id: number; name: string; reference: string; visibility: 'public' | 'private'; status_category: string; summary?: string; }>; related_alerts: Array<{ id: string; alert_source_id: string; deduplication_key: string; status: 'firing' | 'resolved'; title: string; alert_group_ids?: string[]; description?: string; resolved_at?: string; source_url?: string; created_at: string; updated_at: string; }>; created_at: string; updated_at: string; } export interface IncidentioCatalogEntry { id: string; catalog_type_id: string; name: string; aliases: string[]; rank: number; attribute_values: Record; }>; external_id?: string; archived_at?: string; created_at: string; updated_at: string; } export interface IncidentioCatalogType { id: string; name: string; description: string; type_name: string; ranked: boolean; is_editable: boolean; use_name_as_identifier: boolean; categories: string[]; annotations: Record; color: string; icon: string; created_at: string; updated_at: string; } export interface IncidentioCatalogResource { type: string; engine_resource_type: string; label: string; description: string; value_docstring: string; category: string; } export interface IncidentioTeam { id: string; name: string; catalog_entry: { id: string; name: string; external_id?: string; }; members: IncidentioUser[]; } export interface IncidentioSchedule { id: string; name: string; timezone: string; team_ids: string[]; permalink: string; annotations: Record; config?: { rotations: Array<{ id: string; name: string; users: IncidentioUser[]; handover_start_at: string; scheduling_mode?: 'fair' | 'sequential'; }>; }; current_shifts?: IncidentioScheduleEntry[]; next_shifts?: IncidentioScheduleEntry[]; holidays_public_config?: { country_codes: string[]; }; created_at: string; updated_at: string; } export interface IncidentioScheduleEntry { start_at: string; end_at: string; entry_id?: string; fingerprint?: string; layer_id?: string; rotation_id?: string; user?: IncidentioUser; } export interface IncidentioPolicyFinding { id: string; policy_id: string; policy_type: 'debrief' | 'follow_up' | 'on_call_readiness' | 'post_mortem' | 'schedule' | 'vacation_conflict'; state: 'pending' | 'active' | 'resolved' | 'cancelled' | 'dismissed'; responsible_users: IncidentioUser[]; days?: number; due_at?: string; debrief?: { incident_id: string; }; dismissal?: { dismissed_at: string; dismissed_by: IncidentioActor; reason: string; }; follow_up?: { incident_id: string; follow_up_id: string; }; on_call_readiness?: { user_id: string; high_urgency: IncidentioReadinessRule[]; low_urgency: IncidentioReadinessRule[]; }; post_mortem?: { incident_id: string; }; schedule?: { schedule_id: string; start_at: string; end_at: string; cause?: 'nobody_scheduled' | 'no_on_call_seat' | 'user_deactivated'; has_unscheduled_time?: boolean; rotation_id?: string; }; vacation_conflict?: { user_id: string; schedule_id: string; start_at: string; end_at: string; holiday_name?: string; rotation_id?: string; }; last_checked_at: string; created_at: string; updated_at: string; } export interface IncidentioReadinessRule { method_types: string[]; met: boolean; max_delay_seconds?: number; } export interface IncidentioPage { items: T[]; nextCursor: string | null; total?: number; } export interface IncidentioCatalogEntryPage extends IncidentioPage { catalogType: IncidentioCatalogType; } export interface IncidentioCatalogEntryResult { entry: IncidentioCatalogEntry; catalogType: IncidentioCatalogType; } export interface IncidentioListOptions { cursor?: string; pageSize?: number; } export interface IncidentioListActionsOptions extends IncidentioListOptions { incidentId?: string; incidentMode?: string; } export interface IncidentioListIncidentUpdatesOptions extends IncidentioListOptions { incidentId?: string; } export interface IncidentioListPolicyFindingsOptions extends IncidentioListOptions { policyId?: string; } export declare class IncidentioApiError extends Error { readonly status: number | null; constructor(message: string, status: number | null); } export interface IncidentioApiClientConfig { baseUrl: string; accessToken: string; fetchImpl?: typeof fetch; } export declare class IncidentioApiClient { #private; constructor(config: IncidentioApiClientConfig); listIncidents(cursor?: string): Promise>; getIncident(id: string): Promise; listFollowUps(cursor?: string): Promise>; getFollowUp(id: string): Promise; updateFollowUp(followUp: IncidentioFollowUp, status: IncidentioFollowUp['status']): Promise; listActions(options?: IncidentioListActionsOptions): Promise>; getAction(id: string): Promise; listIncidentUpdates(options?: IncidentioListIncidentUpdatesOptions): Promise>; listAlerts(options?: IncidentioListOptions): Promise>; getAlert(id: string): Promise; listEscalations(options?: IncidentioListOptions): Promise>; getEscalation(id: string): Promise; listCatalogEntries(catalogTypeId: string, options?: IncidentioListOptions & { identifier?: string; }): Promise; getCatalogEntry(id: string, options?: { expand?: boolean; }): Promise; listCatalogTypes(): Promise; getCatalogType(id: string): Promise; listCatalogResources(): Promise; listTeams(options?: IncidentioListOptions): Promise>; getTeam(id: string): Promise; listSchedules(options?: IncidentioListOptions): Promise>; getSchedule(id: string): Promise; listPolicyFindings(options?: IncidentioListPolicyFindingsOptions): Promise>; getPolicyFinding(id: string): Promise; } //# sourceMappingURL=api.d.ts.map