import validator from "validator"; import { MessageDescriptor } from "react-intl"; import { WindowHapiLogger } from "./logger/types"; import { Validators } from "./validator/types"; import { ContractDirectApplyPostingRequirementQuestionnaire } from "../contract"; export type ValueOf = T[keyof T]; export type AnyNonFunction = Omit; export declare type PrimitiveType = string | number | boolean | null | undefined | Date; export type PartialBy = Omit & Partial>; export type RecursivePartial = { [P in keyof T]?: RecursivePartial; }; export type PartialRecord = Partial>; export type RemoveIndex = { [K in keyof T as string extends K ? never : number extends K ? never : K]: T[K]; }; export type PaginationLimitOffset = { limit?: number; offset?: number; }; export type PaginationResponseV1 = { count?: number; next?: string | null; previous?: string | null; } & PaginationLimitOffset; export type PaginationResponseV2 = { total?: number; meta?: { first: string; last: string; next: string; previous: string; }; } & PaginationLimitOffset; export type PaginatedAPIResponseV1 = { results: T[]; } & PaginationResponseV1; export type PaginatedAPIResponseV2 = { data: T[]; } & PaginationResponseV2; export type HapiInputErrorMessageOrValidity = MessageDescriptor | MessageDescriptor[] | boolean | undefined | null; export type UseValidatorResultValidityOrErrorMessages = Record; export type UseValidatorResult = { validityOrErrorMessages: UseValidatorResultValidityOrErrorMessages; areAllValid: boolean; hasBackendTakenOver?: boolean; }; export type ValidatorKey = Exclude | keyof Validators; export type ValidatorKeyMap = { [k: string]: ValidatorKey | NestedValidatorKeys; }; export type NestedValidatorKeys = ValidatorKey | ValidatorKey[] | ValidatorKeyMap; export type BaseService = { logger: WindowHapiLogger; }; export type HapiWebComponent = { title: string; description: string; moduleName: string; secondaryModuleName?: string; notes?: string; path: string; key: string; id: string; autogeneratedStateSubscriptions?: string[]; initialState?: Partial>; isUserJourney?: boolean; webComponentCSS?: Record; attributes?: Record; shouldAutoResize?: boolean; qaFunctionToMockId?: Record; qaMockQueryParams?: Record; qaDocsPlaygroundCSS?: Record; optionalAttributes?: string[]; loadingLazyIframe?: boolean; isHiddenOnDocumentation?: boolean; isProxyToOtherWidget?: boolean; }; export type PostingRequirementType = "SELECT" | "SELECT-MAP_ONLY" | "TEXT" | "MULTIPLE" | "HIER" | "TEXTEXPAND" | "DATE" | "TEXTAREA" | "AUTOCOMPLETE" | "STATISCH" | "HTMLAREA" | "QUESTIONNAIRE"; export type PostingRequirementRuleName = "int" | "regex" | "maxlength" | "minlength" | "maxitems" | "minitems" | "date" | "float" | "email" | "lower" | "higher" | "min" | "max" | "before" | "after" | "url" | "autocomplete" | "mimetype" | "statischtype"; export type PostingRequirementRule = { rule: PostingRequirementRuleName; data: string; }; export type PostingRequirementRuleWithObjectData = { data: Record; } & Omit; export type PostingRequirementDisplayRuleShowOperand = "notempty" | "equal" | "in" | "contains" | "selected_option_show_contains"; export type PostingRequirementDisplayRuleShow = { facet: string; value: null | string | string[]; op: PostingRequirementDisplayRuleShowOperand; }; export type PostingRequirementDisplayRule = { show: PostingRequirementDisplayRuleShow[]; }; export type PostingRequirementAutocompleteParametersSourceSingle = { field?: string; facet?: string; }; export type PostingRequirementAutocompleteParametersSourceMultiple = { [key: string]: PostingRequirementAutocompleteParametersSourceSingle | PostingRequirementAutocompleteParametersSourceSingle[]; }; export type PostingRequirementParametersSource = PostingRequirementAutocompleteParametersSourceSingle | PostingRequirementAutocompleteParametersSourceMultiple; export type PostingRequirementAutocomplete = { required_parameters: string[] | null; parameters_source: PostingRequirementParametersSource | null; }; export type PostingRequirement = { name: string; label: string; description?: string; display_rules: PostingRequirementDisplayRule | null; autocomplete: PostingRequirementAutocomplete | null; options: PostingRequirementOption[] | null; questionnaire?: ContractDirectApplyPostingRequirementQuestionnaire | null; primary_taxonomy?: string | null; message?: string | null; required: boolean; sort: string; type: PostingRequirementType; rules?: (PostingRequirementRule | PostingRequirementRuleWithObjectData)[] | null; group_id?: string | number; }; export type PostingRequirementLabelsMap = Record; export type PostingRequirementOptionRequiresField = { field: { name: string; }; }; export type PostingRequirementOption = { default?: string; key: string | number; label: string; data?: PostingRequirementOptionData; labels?: Record<"default", string>; sort?: string; parent?: string; requires?: PostingRequirementOptionRequiresField[] | null; show?: string[]; }; export type PostingRequirementOptionDataImage = { image: { title: string; src: string; }; }; export type PostingRequirementOptionData = { description?: string; selected?: boolean; images?: PostingRequirementOptionDataImage[]; }; export type TransformedPostingRequirementOption = { default?: boolean; value?: string | number; data?: PostingRequirementOptionData; requires?: PostingRequirementOptionRequiresField[] | null; label: string; show?: string[]; }; export type TransformedPostingRequirement = Omit & { options: TransformedPostingRequirementOption[] | null; }; export type Facet = {}; export type PostingRequirementsAutocompleteRequestOption = { key: string; value: string | string[]; }; export type FormFacetsFieldType = "input" | "input-html" | "textarea" | "select" | "select-multi" | "select-tree-async" | "select-tree" | "select-tree-autocomplete" | "select-autocomplete" | "select-multi-autocomplete" | "input-tag" | "date" | "heading" | "file-upload" | "questionnaire" | "unknown"; export type FormFacetsFormOfThisOrderedProductSpec = Record; export type ContractPostingRequirementFieldAutocompleteRequestOption = PostingRequirementsAutocompleteRequestOption; export type HapiFeatureBranch = { name: string; url: string; docsUrl: string; changelogUrls: { url: string; scope: string; }[]; releaseDate: string; }; export type FlattenedItem = { label: string; value: T; }; export type StringifiedJSON = string; export type DOMEventType = keyof GlobalEventHandlersEventMap; //# sourceMappingURL=types.d.ts.map