declare abstract class LabelFieldDefinitionBuilder<BuilderType, FieldType> {
    protected _isOptional: boolean;
    protected patterns: string[];
    protected hiddenProperties: Record<string, unknown>;
    isOptional(optional: boolean): BuilderType;
    setPatterns(patterns: string[]): BuilderType;
    setPattern(pattern: string): BuilderType;
    setHiddenProperty(key: string, value: unknown): BuilderType;
    setHiddenProperties(hiddenProperties: Record<string, unknown>): BuilderType;
    abstract build(name: string): Promise<FieldType>;
    protected abstract getThis(): BuilderType;
}

export { LabelFieldDefinitionBuilder };
