/** * @public */ export declare type AnyFunc = (...args: any[]) => any; /** * 生成boolean值的配置 * @public */ export declare interface BoolOptions { /** true的可能性 */ likelihood?: number; } /** @public */ export declare interface CCharacterOptions { pool: string; } /** * 地点生成器 * @public */ export declare class ChAddressRandom extends Random { /** * 生成一个国家中文名字 */ country(): string; /** * 返回一个省份名称 */ province(): string; /** * 生成一个市 */ city(): string; /** * 生成一个区(县) */ district(): string; /** * 返回一个路名 */ road(): string; /** * 返回一个地址 */ address(): string; /** 生成一个邮政编码 */ postcode(): string; } /** * 生成单个char的参数配置 * @public */ export declare interface CharacterOptions { pool?: string; numeric?: boolean; symbols?: boolean; lower?: boolean; upper?: boolean; } /** @public */ export declare interface CLastNameOptions extends Person { length?: number; } /** * ColorRandom的database类型 * @public */ export declare interface ColorDatabase { colorKeywords: string[]; } /** * 颜色生成器 * @public */ export declare class ColorRandom extends Random { database: ColorDatabase; /** * 返回 红-绿-蓝 模式的颜色 */ rgb(options?: RGBOptions): string; /** * 返回 红-绿-蓝-阿尔法 模式的演示 */ rgba(optios?: RGBAOptions): string; /** * 返回 色相-饱和度-明度 模式的颜色 */ hsl(options?: HSLOptions): string; /** * 返回 色相-饱和度-明度-阿尔法 的颜色 */ hsla(options?: HSLAOptions): string; /** * 返回一个 {@link https://developer.mozilla.org/en-US/docs/Web/CSS/color_value | Color Keyword} */ colorname(): string; /** * 返回16进制颜色值 * @param options - 配置 */ hexcolor(options?: HexColorOptions): string; /** * 返回十进制颜色值 * @param options - 配置 */ decimalcolor(options?: RGBBaseOptions): number; /** * 生成RGB数字 * @param options - 配置 */ private _rgb; /** * 生成HSL序列 * @param options - 配置 */ private _hsl; } /** @public */ export declare interface CWordOption extends CCharacterOptions { lenght?: number; } declare interface DateTimeDatabase { weekday: { [index: string]: any[][]; }; month: { [index: string]: any[][]; }; } /** @public */ export declare interface DateTimeOptions extends Interval { /** 日期格式 {@link https://date-fns.org/v2.0.1/docs/format | keyword} */ format?: string; } /** * 日期生成器 * @public */ export declare class DateTimeRandom extends Random { /** * 日期类的数据 */ database: DateTimeDatabase; /** * 生成格式为 yyyy-MM-dd 格式的日期 {@link https://tools.ietf.org/html/rfc3339#section-5.6 | full-date} * @param options - 时间区间 timestamp */ date(options?: Interval): string; /** * 生成格式为 fulltime 格式的日期 {@link https://tools.ietf.org/html/rfc3339#section-5.6 | full-time} * @param options - 时间区间 timestamp */ time(options?: TimeOptions): string; /** * 生成格式为 full-data T fulltime 格式的日期 {@link https://tools.ietf.org/html/rfc3339#section-5.6 | date-time} * @remarks * {@link https://date-fns.org/v2.0.1/docs/format | format标识符} * @param options - 时间区间 timestamp */ datetime(options?: DateTimeOptions): string; /** * 返回一个时间戳(ms) * @param options - 配置 */ timestamp(options: Interval): number; /** * 返回星期* 默认返回英文的 * * ```javascript * new DateTimeRandom().weekday({ locale: 'zh-CN' }) // 星期一 * new DateTimeRandom().weekday({ abbr: true }) // Mon. * ``` * @param options - 配置 */ weekday(options?: WeekDayOptions): string; /** * 返回月份 * @param options - 配置 */ month(options?: MonthOptions): string; } /** @public */ export declare interface DomainOptions { tld?: string; } /** @public */ export declare interface EmailOptions { domain?: string; length?: number; } /** * 生成float的参数配置 * @public */ export declare interface FloatOptions extends Interval { /** * 小数位数 */ fixed?: number; } /** * @public */ export declare interface HexColorOptions extends RGBOptions { prefix?: boolean; } /** * @public */ export declare interface HSLAOptions extends HSLBaseOPtions { casing?: 'lower' | 'upper'; minA: number; maxA: number; } /** * HSL颜色的基础配置 * @public */ export declare interface HSLBaseOPtions { minH?: number; maxH?: number; minS?: number; maxS?: number; minL?: number; maxL?: number; } /** * @public */ export declare interface HSLOptions extends HSLBaseOPtions { casing?: 'lower' | 'upper'; } /** * 值区间定义 * @public */ export declare interface Interval { /** * 最小值 */ min?: number; /** * 最大值 */ max?: number; } /** @public */ export declare interface LLOptions { max?: number; min?: number; fixed?: number; } /** @public */ export declare interface LocationOptions { maxLat?: number; minLat?: number; maxLong?: number; minLong?: number; fixed?: number; } /** * 经纬度的随机生成器 * @public */ export declare class LocationRandom extends Random { /** * 返回一个随机纬度 * @param options - 配置 */ latitude(options?: LLOptions): number; /** * 返回一个随机经度 * @param options - 配置 */ longtitude(options?: LLOptions): number; /** * 返回一个随机经纬度 * @param options - 配置 */ location(options?: LocationOptions): number[]; } /** * @public */ export declare interface MixinOptions { [name: string]: AnyFunc; } /** @public */ export declare interface MonthOptions { locale?: string; abbr?: boolean; } /** @public */ export declare interface ParagraphOptions { /** 段落中包含的句子 */ sentence?: number; } /** @public */ export declare interface Person { /** 性别 */ gender?: 'male' | 'female'; } /** @public */ export declare interface PhoneOptions { mobile?: boolean; formatted?: boolean; } /** * 基础(bool int float regexp)生产器 * @public */ export declare class Random { /** * 扩展 * @param options - 要添加的method * @public */ static mixin(options: MixinOptions): void; /** * random的逻辑 生成 0-1之内的数字 可以使用 `Math.random` */ random: RandomFunc; /** * MersenneTwister 的 seed */ readonly seed = 0; /** * MersenneTwister */ private mt?; constructor(...args: [RandomFunc] | Array); /** * 生成一个 `boolean` 数据 * @param options - 生产bool值的配置 */ bool(options?: BoolOptions): boolean; /** * 生成一个 `int` 数据 * @param options - */ integer(options?: Interval): number; /** * 生产float / double数据 * * @param options - */ float(options?: FloatOptions): number; /** * 生成自然数 * @param options - * @public */ natural(options?: Interval): number; /** * 从给定的数组中随机返回一个 * @param array - 数组 * * @public */ pickone(array: T[]): T; /** * 从给定的数组中随机返回`count`个 * @param array - 数组 * @param count - 数目 * * @public */ pickset(array: T[], count?: number): T[]; /** * 打乱数组元素顺序 * @param array - 数组 */ shuffle(array: T[]): T[]; /** * 批量生成指定的数据 * @param generator - 生产数据的逻辑 * @param length - 生产数据的长度 * @param params - `generator`的参数 */ n(generator: T, length?: number, ...params: Parameters): ReturnType[]; /** * 通过正则表达式生成数据 * * ```javascript * new Random().randexp('\\d{4}-\\d{8}'); * ``` * * @param source - 正则表达式 * @param flag - 正则表达式的flag `i` */ randexp(source: string | RegExp, flag?: string): string; } /** @public */ export declare type RandomFunc = () => number; /** * RGBA的配置 * @public */ export declare interface RGBAOptions extends RGBBaseOptions { casing?: 'lower' | 'upper'; minA: number; maxA: number; } /** * RGB颜色的基础配置 * @public */ export declare interface RGBBaseOptions { grayscale?: boolean; min?: number; max?: number; minR?: number; maxR?: number; minG?: number; maxG?: number; minB?: number; maxB?: number; } /** * @public */ export declare interface RGBOptions extends RGBBaseOptions { /** 大写小模式 */ casing?: 'lower' | 'upper'; } /** @public */ export declare interface SentenceOptions { /** 句子中单词的数量 */ words?: number; punctuation?: boolean | string; } /** * Random的生成数据的基础数据库 * @public */ export declare interface StringDatabase { character: { lower: string; upper: string; number: string; symbol: string; }; syllable: { consonants: string; vowels: string; }; sentence: { punctuations: string; }; } /** * 生成字符串的参数配置 * @public */ export declare interface StringOptions extends CharacterOptions { length: number; } /** * 生成2-3易读音节 * @public */ export declare interface SyllableOptions { capitalize?: boolean; length?: number; } /** * TextRandom的database类型 * @public */ export declare interface TextDatabase { character: { lower: string; upper: string; number: string; symbol: string; }; cCharacter: { chars: string; }; syllable: { consonants: string; vowels: string; }; sentence: { punctuations: string; }; hexs: string; cfirst: string[]; clast: any; firstNames: { male: string[]; female: string[]; }; lastNames: string[]; } /** * 基本的字符串生产器 * @public */ export declare class TextRandom extends Random { /** @public */ database: TextDatabase; /** * 生产随机的字符 * * @param options - * @public */ character(options?: CharacterOptions): string; /** * 生成随机的字符串 * * @param options - * * @public */ string(options?: StringOptions): string; /* Excluded from this release type: syllable */ /** * 生成一个单词 * @param options - 配置 * @public */ word(options?: WordOptions): string; /** * 返回一个句子 * @param options - 配置 * @public */ sentence(options?: SentenceOptions): string; /** * 生成一个段落 * @param options - 段落配置 * @public */ paragraph(options?: ParagraphOptions): string; /** * 返回英文名称 * * @param options - 配置 */ name(options?: Person): string; /** * 返回英文名称的姓氏 */ lastname(): string; /** * 返回英文名字 * @param options - 配置 */ firstname(options?: Person): string; /** * 返回一个中文名称 * @param options - 配置 */ cname(options?: Person): string; /** * 返回一个中文姓氏 */ cfirstname(): string; /** * 返回中文名字 * @param options - 配置 */ clastname(options?: CLastNameOptions): string; /** * 返回一个中文字 */ ccharacter(options?: CCharacterOptions): string; /** * 返回一个中文词 * @param options - 配置 */ cword(options?: CWordOption): string; /** * 返回一个中文句子 * @param options - 配置 */ csentence(options?: Interval): string; /** * 返回一个中文段落 * @param options - 配置 */ cparagraph(options?: Interval): string; /* Excluded from this release type: phone */ } /** @public */ export declare interface TimeOptions extends Interval { /** 是否需要time offset */ short?: boolean; } /** @public */ export declare interface UrlOptions extends DomainOptions { protocol?: string; domain?: string; domainPrefix?: string; path?: string; extensions?: string[]; } /** * WebRandom 的database类型 * @public */ export declare interface WebDataBase { tld: string[]; } /** * Web类的生成器 * @public */ export declare class WebRandom extends TextRandom { database: WebDataBase & TextDatabase; /** * 返回一个url * @param options - 配置 */ url(options?: UrlOptions): string; /** * 返回一个domain * @param options - 配置 */ domain(options?: DomainOptions): string; /** * 返回ipv4 */ ipv4(): string; /** * 返回ipv6 */ ipv6(): string; /** * 返回一个email * @param options - 配置 */ email(options?: EmailOptions): string; /** * 返回一个top-level domain * * @remarks 返回database.tlds的一个 */ tld(): string; } /** @public */ export declare interface WeekDayOptions { locale?: string; abbr?: boolean; } /** * @public */ export declare interface WordOptions { syllables?: number; capitalize?: boolean; length?: number; } export { }