type Prev = [never, 0, 1, 2, 3, 4]; type DeepKeyOf = [D] extends [never] ? never : T extends object ? { [K in keyof T & string]: K | (NonNullable extends object ? `${K}.${DeepKeyOf, Prev[D]>}` : never); }[keyof T & string] : never; type AccessorColumn = { type: "accessor"; accessorKey: DeepKeyOf; header: string; dateFormat?: string; fallbackValue?: string; }; export type ExportColumn = AccessorColumn; export interface IFdtoInvoiceExportBody { data: T[]; type: "pdf" | "excel"; columns: ExportColumn[]; title?: string; subTitle?: string; metaData?: string[]; orientation: "portrait" | "landscape"; } export {};