import type { TicketDetailDto, MyTicketDetailDto, TicketStatus, TicketActivityDto, MyTicketActivityDto, MySatisfactionDto } from '@/services/api/ticketApi';
type TFunction = ReturnType<typeof import('react-i18next').useTranslation>['t'];
export type TicketTab = 'conversation' | 'description' | 'information' | 'assignment' | 'ai';
export interface TabButtonsProps {
    readonly activeTab: TicketTab;
    readonly commentCount: number;
    readonly isSupport: boolean;
    readonly assigneeCount: number;
    readonly onTabChange: (tab: TicketTab) => void;
    readonly t: TFunction;
}
export declare function TabButtons({ activeTab, commentCount, isSupport, assigneeCount, onTabChange, t }: TabButtonsProps): import("react/jsx-runtime").JSX.Element;
export interface TicketInfoPanelsProps {
    readonly ticket: TicketDetailDto | MyTicketDetailDto;
    readonly isSupport: boolean;
    readonly satisfaction: MySatisfactionDto | null;
    readonly showRatingForm: boolean;
    readonly ratingValue: number;
    readonly ratingComment: string;
    readonly submittingRating: boolean;
    readonly onShowRatingForm: () => void;
    readonly onRatingChange: (value: number) => void;
    readonly onCommentChange: (value: string) => void;
    readonly onCancelRating: () => void;
    readonly onSubmitRating: () => Promise<void>;
    readonly t: TFunction;
}
export declare function TicketInfoPanels({ ticket, isSupport, satisfaction, showRatingForm, ratingValue, ratingComment, submittingRating, onShowRatingForm, onRatingChange, onCommentChange, onCancelRating, onSubmitRating, t }: TicketInfoPanelsProps): import("react/jsx-runtime").JSX.Element;
export interface TabContentProps {
    readonly activeTab: TicketTab;
    readonly ticket: TicketDetailDto | MyTicketDetailDto;
    readonly activities: (TicketActivityDto | MyTicketActivityDto)[];
    readonly isSupport: boolean;
    readonly isClosed: boolean;
    readonly isReadOnly: boolean;
    readonly isConnected: boolean;
    readonly currentUserName: string;
    readonly saving: boolean;
    readonly uploading: boolean;
    readonly onAddComment: (content: string, isInternal: boolean) => Promise<void>;
    readonly onDownloadAttachment: (attachment: any) => Promise<void>;
    readonly onUploadAttachment: (file: File) => Promise<void>;
    readonly onStatusChange: (status: TicketStatus) => Promise<void>;
    readonly onAssign?: () => void;
    readonly onResolve: () => void;
    readonly onClose: () => Promise<void>;
    readonly onReopen: () => Promise<void>;
    readonly onEscalate: () => void;
    readonly getAttachmentUrl: (attachment: any) => string;
    readonly onProposeSolution?: (content: string) => Promise<void>;
    readonly onApproveSolution?: () => Promise<void>;
    readonly onRejectSolution?: (reason: string) => Promise<void>;
    readonly t: TFunction;
}
export declare function TabContent({ activeTab, ticket, activities, isSupport, isClosed, isReadOnly, isConnected, currentUserName, saving, uploading, onAddComment, onDownloadAttachment, onUploadAttachment, onStatusChange, onAssign, onResolve, onClose, onReopen, onEscalate, getAttachmentUrl, onProposeSolution, onApproveSolution, onRejectSolution, t }: TabContentProps): import("react/jsx-runtime").JSX.Element;
export {};
//# sourceMappingURL=TicketDetailTabs.d.ts.map