import { type AvonRequest } from '../Http/Requests'; import { Collection } from 'collect.js'; import type Field from '../Fields/Field'; import { type Model } from '../Models'; import Relation from '../Fields/Relation'; export default class FieldCollection extends Collection { /** * Find a given field by its attribute. */ findFieldByAttribute(attribute: string, defaultValue?: any): TItem | undefined; /** * Resolve value of fields. */ resolve(resource: Model): FieldCollection; /** * Resolve value of fields for display. */ resolveForDisplay(resource: Model): FieldCollection; /** * Remove non-creation fields from the collection. */ onlyCreateFields(request: AvonRequest): FieldCollection; /** * Remove non-update fields from the collection. */ onlyUpdateFields(request: AvonRequest, resource: Model): FieldCollection; /** * Filter fields for showing on index. */ filterForIndex(request: AvonRequest, resource: Model): FieldCollection; /** * Filter fields for showing on detail. */ filterForDetail(request: AvonRequest, resource: Model): FieldCollection; /** * Reject if the field supports Filterable Field. */ withOnlyFilterableFields(): FieldCollection; /** * Reject if the field supports Orderable Field. */ withOnlyOrderableFields(): FieldCollection; /** * Reject if the field supports Relatable Field. */ withOnlyRelatableFields(): FieldCollection; /** * Reject if the field is rellatable Field. */ withoutRelatableFields(): FieldCollection; /** * Reject if the field is rellatable Field. */ withoutUnfillableFields(): FieldCollection; /** * Reject if the field is rellatable Field. */ withoutUnresolvableFields(): FieldCollection; /** * Filter elements should be displayed for the given request. */ authorized(request: AvonRequest): FieldCollection; } //# sourceMappingURL=FieldCollection.d.ts.map