import type { ReactElement } from 'react';
import type { TicketStatus } from '@/services/api/ticketApi';
interface Attachment {
    id: string;
    fileName: string;
    contentType?: string;
    fileSize: number;
    createdAt: string;
}
interface Activity {
    action: string;
    newValue?: string | null;
    createdAt: string;
}
interface ClientContext {
    sourceUrl?: string;
    browser?: {
        name: string;
        version: string;
        language?: string;
    };
    os?: {
        name: string;
        version: string;
    };
    device?: {
        type: string;
        screenResolution?: string;
    };
    recentErrors?: Array<{
        message: string;
        stack?: string;
        timestamp?: string;
        component?: string;
    }>;
}
interface TicketData {
    id: string;
    ticketNumber: string;
    title: string;
    description: string;
    type: string;
    status: string;
    priority: string;
    createdByName?: string;
    assignedToName?: string;
    assignees?: Array<{
        userId: string;
        fullName: string;
        isPrimary: boolean;
        assignedViaGroupName?: string;
    }>;
    resolution?: string;
    resolvedAt?: string;
    closedAt?: string;
    createdAt: string;
    updatedAt?: string;
    clientContext?: ClientContext;
}
type SidebarLayout = 'compact' | 'grid';
interface TicketSidebarProps {
    readonly ticket: TicketData;
    readonly attachments: Attachment[];
    readonly activities: Activity[];
    readonly isSupport: boolean;
    readonly saving?: boolean;
    readonly uploading?: boolean;
    readonly isReadOnly?: boolean;
    readonly layout?: SidebarLayout;
    readonly onAssign?: () => void;
    readonly onStatusChange?: (status: TicketStatus) => void;
    readonly onResolve?: () => void;
    readonly onCloseTicket?: () => void;
    readonly onReopen?: () => void;
    readonly onEscalate?: () => void;
    readonly onDownloadAttachment: (attachment: Attachment) => void;
    readonly onUploadAttachment?: (file: File) => Promise<void>;
    readonly getAttachmentUrl: (attachment: Attachment) => string;
}
export declare function TicketSidebar({ ticket, attachments, activities, isSupport, saving, uploading, layout, onAssign, onStatusChange, onResolve, onCloseTicket, onReopen, onEscalate, onDownloadAttachment, onUploadAttachment, getAttachmentUrl, }: TicketSidebarProps): ReactElement;
export {};
//# sourceMappingURL=TicketSidebar.d.ts.map