import { Observable } from 'rxjs'; export interface BugReport { title?: string; comment?: string; devInfo?: string; errorId?: string; reporterName?: string; reporterEmail?: string; date?: Date; url?: string; userAgent?: string; product?: string; version?: string; } export interface BugReportDialogConfig { hideFields: ['title' | 'reporterEmail' | 'reporterName' | 'comment']; commentTemplate?: string; } export interface BugReportDialogData { report: BugReport; targetService: BugReportTargetService; targetKey: string; config: BugReportDialogConfig; } export interface BugReportTargetService { getTargetName: (targetKey: string) => string; publishIssue: (bugReport: BugReport, targetKey: string) => Observable; targets: { [key: string]: BugReportTarget; }; } export interface BugReportTarget { [key: string]: any; toString: () => string; } export interface BugReportResult { uri?: string; message: string; success: boolean; }