import { GetProp, UploadProps } from 'antd';
export type OptionType = {
    label: string;
    value: string | number;
};
export interface IPaginate {
    page: number | null;
    pages: number | null;
    previous?: number | null;
    next?: number | null;
    count: number | null;
    limit: number | null;
}
export type FileType = Parameters<GetProp<UploadProps, 'beforeUpload'>>[0];
export interface Session {
    id: string;
    profileId: string;
    phone?: string;
    email?: string;
    name?: string;
    surname?: string;
    roles: string[];
    maxRolePriority: number | undefined;
    isAllDomains?: boolean;
    domains?: string[];
    tokens?: {
        accessToken: {
            token: string;
            exp: number;
        };
        refreshToken: {
            token: string;
            exp: number;
        };
    };
}
export interface IServerImage {
    altRU?: string;
    altEN?: string;
    altAR?: string;
    name: string;
    originalFileExtension: string;
    entityId: string;
    fullPathExample: string;
    prefixes?: string[];
    fileExtensions?: string[];
    folder?: string;
}
export interface IServerFile {
    name: string;
    fullName: string;
    extension: string;
    entityId: string;
    fullPathExample: string;
    folder?: string;
}
export interface IFormFile {
    tempName: string;
    uid: string;
}
export interface ITempFiles {
    tempName: string;
}
export interface ITempImages extends ITempFiles {
    altRU?: string;
    altEN?: string;
    altAR?: string;
}
export interface IAllFiles {
    name: string | null;
    tempName: string | null;
}
export interface IAllImages extends IAllFiles {
    altRU?: string | null;
    altEN?: string | null;
    altAR?: string | null;
}
export interface IServerFileForm {
    uid?: string;
    url?: string;
}
export interface IServerImageForm extends IServerFileForm {
    altRU?: string | null;
    altEN?: string | null;
    altAR?: string | null;
}
export interface IResultFile {
    tempName?: string;
    uid?: string;
    url?: string;
}
export interface IResultImage extends IResultFile {
    altRU?: string | null;
    altEN?: string | null;
    altAR?: string | null;
}
export interface IAllFiles {
    name: string | null;
    tempName: string | null;
}
export interface IAllImages extends IAllFiles {
    altRU?: string | null;
    altEN?: string | null;
    altAR?: string | null;
}
export interface UploadFile {
    uid: string;
    name: string;
    isError?: boolean;
}
export interface IUploadImage extends UploadFile {
    altRU?: string;
    altEN?: string;
    altAR?: string;
}
export declare enum Languages {
    'russian' = "ru",
    'english' = "en",
    'arabic' = "ar"
}
export type LanguagesTypes = 'ru' | 'en' | 'ar';
export declare enum MonthsNumber {
    January = 1,
    February = 2,
    March = 3,
    April = 4,
    May = 5,
    June = 6,
    July = 7,
    August = 8,
    September = 9,
    October = 10,
    November = 11,
    December = 12
}
export type NoUndefinedRangeValueType<DateType> = [start: DateType | null, end: DateType | null];
export type RangeValueType<DateType> = [
    start: DateType | null | undefined,
    end: DateType | null | undefined
];
export interface AdminDrawerFormProps<T> {
    id?: string;
    action?: T;
    onClose?: () => void;
    onRefetch?: () => void;
    onChangeActionValue?: (value: T) => void;
}
export interface IUploadImagesStore {
    images: IUploadImage[];
    updatedImages: IUploadImage[];
    onUpdateData: (data: IUploadImage) => void;
    onSetData: (data: IUploadImage[]) => void;
    onDeleteImage: (uid: string) => void;
    onAllDelete: () => void;
}
export interface IImageFile {
    imageName: string;
    originalFileExtension: string;
    entityId: string;
    fullPathExample: string;
    prefixes?: string[];
    fileExtensions?: string[];
    folder?: string;
}
export type GetErrorType = ({ error, message }: {
    error?: unknown;
    message?: string;
}) => void;
export type ToUnion<T extends Record<string, string | number>> = keyof {
    [Prop in keyof T as `${T[Prop]}`]: Prop;
};
