import React from 'react';
import { type ErrorContext } from '@/services/support/errorContextService';
import { type BrowserInfo } from '@/services/support/browserInfoService';
import { type DraftErrorContext, type DraftAttachment } from '@/services/support/ticketDraftService';
import type { TicketType, TicketPriority, ClientContextDto, MyTicketDetailDto } from '@/services/api/ticketApi';
import type { UserTenantDto } from '@/services/api/adminApi';
export declare const allowedExtensions: string[];
interface UseCreateSupportTicketOptions {
    draftId: string | null;
    effectiveTenant: UserTenantDto | null;
}
export interface UseCreateSupportTicketReturn {
    selectedType: TicketType | null;
    setSelectedType: React.Dispatch<React.SetStateAction<TicketType | null>>;
    title: string;
    setTitle: React.Dispatch<React.SetStateAction<string>>;
    description: string;
    setDescription: React.Dispatch<React.SetStateAction<string>>;
    priority: TicketPriority;
    setPriority: React.Dispatch<React.SetStateAction<TicketPriority>>;
    submitting: boolean;
    error: string | null;
    setError: React.Dispatch<React.SetStateAction<string | null>>;
    errorContext: ErrorContext | null;
    setErrorContext: React.Dispatch<React.SetStateAction<ErrorContext | null>>;
    includeScreenshot: boolean;
    setIncludeScreenshot: React.Dispatch<React.SetStateAction<boolean>>;
    includeErrorLogs: boolean;
    setIncludeErrorLogs: React.Dispatch<React.SetStateAction<boolean>>;
    includeBrowserInfo: boolean;
    setIncludeBrowserInfo: React.Dispatch<React.SetStateAction<boolean>>;
    annotatedScreenshot: string | null;
    setAnnotatedScreenshot: React.Dispatch<React.SetStateAction<string | null>>;
    browserInfo: BrowserInfo | null;
    setBrowserInfo: React.Dispatch<React.SetStateAction<BrowserInfo | null>>;
    pendingFiles: File[];
    setPendingFiles: React.Dispatch<React.SetStateAction<File[]>>;
    uploadingFiles: boolean;
    fileInputRef: React.RefObject<HTMLInputElement | null>;
    showDraftSaved: boolean;
    setShowDraftSaved: React.Dispatch<React.SetStateAction<boolean>>;
    saveFailed: boolean;
    setSaveFailed: React.Dispatch<React.SetStateAction<boolean>>;
    autoSaveTimerRef: React.MutableRefObject<ReturnType<typeof setTimeout> | null>;
    isInitialLoadCompleteRef: React.MutableRefObject<boolean>;
    hasUnsavedChangesRef: React.MutableRefObject<boolean>;
    draftAttachmentsRef: React.MutableRefObject<DraftAttachment[]>;
    errorContextToDraft: (context: ErrorContext) => DraftErrorContext;
    draftToErrorContext: (draft: DraftErrorContext) => ErrorContext;
    fileToAttachment: (file: File) => Promise<DraftAttachment>;
    attachmentToFile: (attachment: DraftAttachment) => File;
    filesToAttachments: (files: File[]) => Promise<DraftAttachment[]>;
    saveDraftNow: () => boolean;
    processFiles: (files: File[]) => void;
    removeFile: (index: number) => void;
    buildClientContext: () => ClientContextDto;
    cleanupAfterSubmit: () => void;
    submitTicket: () => Promise<MyTicketDetailDto | null>;
}
export declare function useCreateSupportTicket({ draftId, effectiveTenant, }: UseCreateSupportTicketOptions): UseCreateSupportTicketReturn;
export {};
//# sourceMappingURL=useCreateSupportTicket.d.ts.map