import * as yup from 'yup'; import type { BigNumberish } from '@ethersproject/bignumber/lib/bignumber'; import type { CSVParseParam } from 'csvtojson/v2/Parameters'; type ParseGrantFunction = TReturnType extends keyof Grant ? (item: string, head: string, resultRow: unknown, row: string[], columnIndex: number) => ParsedGrants[string][TReturnType] : ParsedGrants; export type ParsedGrants = yup.InferType; export type Grant = ParsedGrants[keyof ParsedGrants]; export type GrantList = Grant[]; type ColParser = CSVParseParam['colParser']; interface CsvParser extends ColParser { recipient: ParseGrantFunction<'recipient'>; contactUUID: 'omit'; originalAmount: ParseGrantFunction<'originalAmount'>; startTime: ParseGrantFunction<'startTime'>; vestEndTime: ParseGrantFunction<'vestEndTime'>; unlockEndTime: ParseGrantFunction<'unlockEndTime'>; cliff1Time: ParseGrantFunction<'cliff1Time'>; cliff2Time: ParseGrantFunction<'cliff2Time'>; vestCliff1Amount: ParseGrantFunction<'vestCliff1Amount'>; vestCliff2Amount: ParseGrantFunction<'vestCliff2Amount'>; unlockCliff1Amount: ParseGrantFunction<'unlockCliff1Amount'>; unlockCliff2Amount: ParseGrantFunction<'unlockCliff2Amount'>; lastRevocationTime: ParseGrantFunction<'lastRevocationTime'>; lastQuantityRevoked: ParseGrantFunction<'lastQuantityRevoked'>; } export declare const validations: { readonly isValidEvmMoment: () => { message: (d: { path: string; value?: unknown; }) => string; test: (value: unknown, _options?: { path: string; }) => boolean; }; readonly isBigNumberish: () => { message: (d: { path: string; value?: unknown; }) => string; test: (value: unknown, _options?: { path: string; }) => boolean; }; readonly isNonZero: () => { message: (d: { path: string; value?: unknown; }) => string; test: (value: BigNumberish, _options?: { path: string; }) => boolean; }; readonly isBigNumberLTE: (other: BigNumberish) => { message: (d: { path: string; value?: unknown; }) => string; test: (value: unknown, _options?: { path: string; }) => boolean; }; readonly walletAddressIsSameAsParentKey: () => { message: (d: { path: string; value?: unknown; }) => string; test: (value: unknown, options: { path: string; }) => boolean; }; readonly isWalletAddress: () => { message: (d: { path: string; value?: unknown; }) => string; test: (value: unknown, _options?: { path: string; }) => boolean; }; readonly isBeforeMaxYears: ({ maxFutureYears }: { maxFutureYears: number; }) => { message: (d: { path: string; value?: unknown; }) => string; test: (value: unknown, _options?: { path: string; }) => boolean; }; readonly isAfterYearsAgo: ({ minimumPastYears }: { minimumPastYears: number; }) => { message: (d: { path: string; value?: unknown; }) => string; test: (value: unknown, _options?: { path: string; }) => boolean; }; }; export declare const rules: { readonly requiredPositiveInteger: () => yup.NumberSchema; readonly requiredString: () => yup.StringSchema; readonly requiredPositiveBigNumberString: () => yup.StringSchema; readonly requiredPositiveNonZeroBigNumberString: () => yup.StringSchema; readonly isTimeWithinReasonableDateRange: ({ minimumPastYears, maxFutureYears, }: { minimumPastYears: number; maxFutureYears: number; }) => yup.NumberSchema; readonly isWalletAddress: () => yup.StringSchema; }; export declare const grantSchema: yup.ObjectSchema<{ recipient: string; originalAmount: string; startTime: number; vestEndTime: number; unlockEndTime: number; cliff1Time: number; cliff2Time: number; vestCliff1Amount: string; vestCliff2Amount: string; unlockCliff1Amount: string; unlockCliff2Amount: string; lastRevocationTime: number; lastQuantityRevoked: string; }, yup.AnyObject, { recipient: undefined; originalAmount: undefined; startTime: undefined; vestEndTime: undefined; unlockEndTime: undefined; cliff1Time: undefined; cliff2Time: undefined; vestCliff1Amount: undefined; vestCliff2Amount: undefined; unlockCliff1Amount: undefined; unlockCliff2Amount: undefined; lastRevocationTime: undefined; lastQuantityRevoked: undefined; }, "">; export declare const grantsSchema: any; export declare const csvParser: CsvParser; export declare const grantListToObject: ({ listOfGrants, }: { listOfGrants: GrantList; }) => ParsedGrants; export declare const grantCsvToList: ({ data, opts, }: { data: string; opts?: Partial> | undefined; }) => Promise; export interface VestingTaskOptions { diff?: boolean; expand?: boolean; commit?: string; action?: 'createAndRevoke' | 'revoke' | 'create'; file?: string; memo?: string; asJson?: boolean; dryRun?: boolean; } /** * We use a function here instead to address type issues resulting from race conditions in typechain * * @see https://github.com/dethcrypto/TypeChain/issues/371#issuecomment-1032397470 */ export declare const GET_VESTING_TASK: () => { readonly name: "vesting"; readonly description: "Utilities for handling vesting"; readonly run: (options: VestingTaskOptions, _: CustomHardHatRuntimeEnvironment) => Promise; }; export {};