@league-of-foundry-developers/foundry-vtt-types
Version:
TypeScript type definitions for Foundry VTT
41 lines (34 loc) • 1.37 kB
text/typescript
import type { AnyObject, Merge } from "#utils";
import type Document from "../abstract/document.d.mts";
import type { DataField, ObjectField } from "../data/fields.d.mts";
export type DocumentTypesConfiguration = Record<string, Record<string, AnyObject>>;
/**
* A special {@link ObjectField | `ObjectField`} available to packages which configures any additional Document subtypes
* provided by the package.
*/
declare class AdditionalTypesField<
Options extends AdditionalTypesField.DefaultOptions = AdditionalTypesField.DefaultOptions,
> extends ObjectField<
Options,
AdditionalTypesField.ServerTypeDeclarations,
AdditionalTypesField.ServerTypeDeclarations,
AdditionalTypesField.ServerTypeDeclarations
> {
static get _defaults(): AdditionalTypesField.DefaultOptions;
// options: not null (parameter default only, despite being unused)
protected _validateType(
value: ObjectField.InitializedType<Options>,
options?: DataField.ValidateOptions<AdditionalTypesField>,
): boolean | void;
}
export default AdditionalTypesField;
declare namespace AdditionalTypesField {
type DefaultOptions = Merge<
ObjectField.DefaultOptions,
{
readonly: true;
validationError: "is not a valid sub-types configuration";
}
>;
type ServerTypeDeclarations = Record<Document.SystemType, Record<string, Record<string, unknown>>>;
}