type AtLeastOne = [T, ...T[]]; type ErrorIfNotExhaustive = T extends string ? `${T} is missing.` : never; /** * This is a function that generates an array with all required strings during compile time. * You may find it useful if you have a list of constants, and you need them to be complete. * @see https://stackoverflow.com/a/55266531 */ export declare const exhaustiveStringTuple: () => >(...x: L extends any ? Exclude extends never ? L : Array>> : never) => L extends any ? Exclude extends never ? L : ErrorIfNotExhaustive>[] : never; export {};