import type { TicketType, TicketPriority } from '../api/ticketApi';
export interface DraftAttachment {
    name: string;
    type: string;
    size: number;
    data: string;
}
export interface DraftErrorContext {
    url: string;
    timestamp: string;
    recentErrors: Array<{
        message: string;
        stack?: string;
        url?: string;
        component?: string;
        level?: string;
        timestamp: string;
    }>;
    browserInfo: {
        userAgent: string;
        language: string;
        platform: string;
        screenWidth: number;
        screenHeight: number;
    };
}
export interface TicketDraft {
    id: string;
    type: TicketType | null;
    title: string;
    description: string;
    priority: TicketPriority;
    includeScreenshot: boolean;
    includeErrorLogs: boolean;
    screenshot?: string;
    errorContext?: DraftErrorContext;
    attachments?: DraftAttachment[];
    tenantId?: string;
    tenantSlug?: string;
    tenantName?: string;
    createdAt: Date;
    updatedAt: Date;
}
declare class TicketDraftService {
    private getDrafts;
    private saveDrafts;
    /**
     * Clean up expired drafts (older than 7 days)
     */
    cleanupExpiredDrafts(): void;
    /**
     * Get all valid drafts (non-expired), sorted by most recent
     */
    getAllDrafts(): TicketDraft[];
    /**
     * Get a specific draft by ID
     */
    getDraft(id: string): TicketDraft | null;
    /**
     * Create a new draft
     */
    createDraft(): TicketDraft;
    /**
     * Update an existing draft
     * Returns { success: boolean, draft: TicketDraft | null }
     */
    updateDraft(id: string, updates: Partial<Omit<TicketDraft, 'id' | 'createdAt' | 'updatedAt'>>): {
        success: boolean;
        draft: TicketDraft | null;
    };
    /**
     * Delete a draft
     */
    deleteDraft(id: string): boolean;
    /**
     * Get draft count
     */
    getDraftCount(): number;
    /**
     * Check if drafts exist
     */
    hasDrafts(): boolean;
    /**
     * Get time remaining before draft expires
     */
    getTimeUntilExpiration(draft: TicketDraft): {
        days: number;
        hours: number;
    };
}
export declare const ticketDraftService: TicketDraftService;
export {};
//# sourceMappingURL=ticketDraftService.d.ts.map