node-vk-api-bot
Version:
A library that helps you to create chat-bot for group or user
50 lines (49 loc) • 3.37 kB
TypeScript
export declare type LongPollConnectionData = {
key: string;
server: string;
ts: string;
};
export declare type AppendArrayT<T, A extends unknown[], N extends number = 1, _T extends unknown[] = []> = _T['length'] extends N ? A : AppendArrayT<T, [...A, T], N, [..._T, unknown]>;
declare type AppendArray<A extends unknown[], N extends number = 1, _T extends unknown[] = []> = AppendArrayT<unknown, A, N, _T>;
export declare type Range<Start extends number, End extends number, Step extends number = 1, IncludeEnd extends boolean = false, _T extends unknown[] = AppendArray<AppendArray<[], Start>, Step>> = _T['length'] extends End ? (IncludeEnd extends true ? Start | End : Start) : Start | Range<_T['length'], End, Step, IncludeEnd, AppendArray<_T, Step>>;
declare type __AddLeadingZero<A extends boolean, N extends number> = A extends false ? `${N}` : N extends Range<0, 10> ? `0${N}` : `${N}`;
export declare type StringRange<Start extends number, End extends number, Step extends number = 1, IncludeEnd extends boolean = false, AddLeadingZero extends boolean = false, _T extends unknown[] = AppendArray<AppendArray<[], Start>, Step>, _R extends string = __AddLeadingZero<AddLeadingZero, Start>> = _T['length'] extends End ? IncludeEnd extends true ? _R | __AddLeadingZero<AddLeadingZero, End> : _R : _R | StringRange<Start, End, Step, AddLeadingZero, IncludeEnd, AppendArray<_T, Step>, __AddLeadingZero<AddLeadingZero, _T['length']>>;
export declare type flag = Range<0, 1, 1, true>;
export declare type d = Range<0, 10>;
export declare type date_YYYY = `20${d}${d}`;
declare type _30days = StringRange<1, 30, 1, true, true>;
declare type _31days = _30days | '31';
declare type _28days = StringRange<1, 28, 1, true, true>;
declare type _1_to_9 = Range<1, 10>;
export declare type date_YYYY_MM<S extends string = '-'> = `${date_YYYY}${S}${`0${_1_to_9}` | `1${Range<0, 3>}`}`;
declare type mm_dd<S extends string = '-', R extends boolean = false> = R extends false ? `${StringRange<1, 7, 2, true, true> | StringRange<8, 12, 2, true, true>}${S}${_31days}` | // for months with 31 day
`${'04' | '06' | '09' | 11}${S}${_30days}` | // 30 day
`02${S}${_28days}` : `${_28days}${S}02` | `${_31days}${S}${StringRange<1, 7, 2, true, true> | StringRange<8, 12, 2, true, true>}` | `${_30days}${S}${'04' | '06' | '09' | 11}`;
export declare type date_YYYY_MM_DD<S extends string = '-', R extends boolean = false> = R extends false ? `${date_YYYY}${S}${mm_dd}` : `${mm_dd<S, true>}${S}${date_YYYY}`;
export declare type date_DD_MM_YYYY<S extends string = '-'> = date_YYYY_MM_DD<S, true>;
declare type Without<T, U> = {
[P in Exclude<keyof T, keyof U>]?: never;
};
export declare type xor<T, U> = (T | U) extends object ? (Without<T, U> & U) | (Without<U, T> & T) : T | U;
export declare type atLeastOne<Args extends string[], values extends unknown[], fa extends string = Args[0], fv = values[0], sa extends string = Args[1], sv = values[1]> = Args['length'] extends 1 ? {
[T in fa]: fv;
} : (({
[T in fa]: fv;
} & {
[T in sa]: sv;
}) | ({
[T in fa]: fv;
} & {
[T in sa]?: sv;
}) | ({
[T in fa]?: fv;
} & {
[T in sa]: sv;
}));
export declare type name_case = 'nom' | 'gen' | 'dat' | 'acc' | 'ins' | 'abl';
export declare type T_or_Array_of_T<T> = T | T[];
export declare type get<T> = {
count: number;
items: T[];
};
export {};