import { Result } from '../base'; import { CollectibleKey, ICollectible } from './collectible'; import { IReadOnlyCollectorValidator } from './collectorValidator'; import { IReadOnlyValidatingResultMap } from './validatingResultMap'; import { KeyValueConverters } from './keyValueConverters'; import { Collector } from './collector'; import { CollectorValidator } from './collectorValidator'; /** * A read-only interface exposing non-mutating methods of a * {@link Collections.ValidatingCollector | ValidatingCollector}. * @public */ export interface IReadOnlyValidatingCollector> extends IReadOnlyValidatingResultMap, TITEM> { /** * {@inheritdoc Collections.ValidatingCollector.validating} */ readonly validating: IReadOnlyCollectorValidator; /** * {@inheritdoc Collections.IReadOnlyValidatingCollector.getAt} */ getAt(index: number): Result; /** * {@inheritdoc Collections.IReadOnlyCollector.valuesByIndex} */ valuesByIndex(): ReadonlyArray; } /** * Parameters for constructing a {@link Collections.ValidatingCollector | ValidatingCollector}. * @public */ export interface IValidatingCollectorConstructorParams> { /** * {@inheritdoc Collections.ICollectorValidatorCreateParams.converters} */ converters: KeyValueConverters, TITEM>; /** * {@inheritdoc Collections.ICollectorConstructorParams.items} */ items?: unknown[]; } /** * A {@link Collections.Collector | Collector} with a {@link Collections.CollectorValidator | CollectorValidator} * property that enables validated use of the underlying map with weakly-typed keys and values. * @public */ export declare class ValidatingCollector> extends Collector { /** * A {@link Collections.CollectorValidator | CollectorValidator} which validates keys and values * before inserting them into this collector. */ readonly validating: CollectorValidator; protected readonly _converters: KeyValueConverters, TITEM>; /** * Constructs a new {@link Collections.ValidatingCollector | ValidatingConvertingCollector} * from the supplied {@link Collections.IValidatingCollectorConstructorParams | parameters}. * @param params - Required parameters for constructing the collector. */ constructor(params: IValidatingCollectorConstructorParams); /** * Creates a new {@link Collections.ValidatingCollector | ValidatingCollector} instance from * the supplied {@link Collections.IValidatingCollectorConstructorParams | parameters}. * @param params - Required parameters for constructing the collector. * @returns {@link Success} with the new collector if successful, {@link Failure} otherwise. */ static createValidatingCollector>(params: IValidatingCollectorConstructorParams): Result>; /** * Gets a read-only version of this collector as a * {@link Collections.IReadOnlyValidatingResultMap | read-only map}. * @returns */ toReadOnly(): IReadOnlyValidatingCollector; } //# sourceMappingURL=validatingCollector.d.ts.map