export type StringEnum = { readonly [P in T]: P; }; export type StringEnumValue> = T extends string ? T : keyof T; export declare function StringEnum(...values: TArray): StringEnum; export declare namespace StringEnum { var iterate: (stringEnum: StringEnum) => Iterator; var keys: (stringEnum: StringEnum) => StringEnumValue[]; var has: (stringEnum: StringEnum, value: string | null | undefined) => value is T; var indexOf: (stringEnum: StringEnum, value: string | null | undefined | false) => number; var compare: (stringEnum: StringEnum, a: string | null | undefined | false, b: string | null | undefined | false) => number; var max: (stringEnum: StringEnum, a: string, b: string) => string; }