import { forwardRef } from '@angular/core';
import { ControlContainer, FormGroupDirective, NG_VALUE_ACCESSOR } from '@angular/forms';
/**
 * Creates a value accessor provider for a form component.
 * @param component - The component that implements the NG_VALUE_ACCESSOR interface.
 * @returns An ExistingProvider object for the value accessor.
 */
export const provideValueAccessor = (component) => ({
    provide: NG_VALUE_ACCESSOR,
    useExisting: forwardRef(() => component),
    multi: true,
});
/**
 * Creates a control container provider using FormGroupDirective.
 * @returns An ExistingProvider object for the control container.
 */
export const provideControlContainer = () => ({
    provide: ControlContainer,
    useExisting: FormGroupDirective,
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2lyY2xldG9uZS9zcmMvbGliL3V0aWxzL2Zvcm0udXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6Rjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxTQUFrQixFQUFvQixFQUFFLENBQUMsQ0FBQztJQUM3RSxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDO0lBQ3hDLEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQyxDQUFDO0FBRUg7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsR0FBcUIsRUFBRSxDQUFDLENBQUM7SUFDOUQsT0FBTyxFQUFFLGdCQUFnQjtJQUN6QixXQUFXLEVBQUUsa0JBQWtCO0NBQ2hDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV4aXN0aW5nUHJvdmlkZXIsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIEZvcm1Hcm91cERpcmVjdGl2ZSwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIHZhbHVlIGFjY2Vzc29yIHByb3ZpZGVyIGZvciBhIGZvcm0gY29tcG9uZW50LlxuICogQHBhcmFtIGNvbXBvbmVudCAtIFRoZSBjb21wb25lbnQgdGhhdCBpbXBsZW1lbnRzIHRoZSBOR19WQUxVRV9BQ0NFU1NPUiBpbnRlcmZhY2UuXG4gKiBAcmV0dXJucyBBbiBFeGlzdGluZ1Byb3ZpZGVyIG9iamVjdCBmb3IgdGhlIHZhbHVlIGFjY2Vzc29yLlxuICovXG5leHBvcnQgY29uc3QgcHJvdmlkZVZhbHVlQWNjZXNzb3IgPSAoY29tcG9uZW50OiB1bmtub3duKTogRXhpc3RpbmdQcm92aWRlciA9PiAoe1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gY29tcG9uZW50KSxcbiAgbXVsdGk6IHRydWUsXG59KTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgY29udHJvbCBjb250YWluZXIgcHJvdmlkZXIgdXNpbmcgRm9ybUdyb3VwRGlyZWN0aXZlLlxuICogQHJldHVybnMgQW4gRXhpc3RpbmdQcm92aWRlciBvYmplY3QgZm9yIHRoZSBjb250cm9sIGNvbnRhaW5lci5cbiAqL1xuZXhwb3J0IGNvbnN0IHByb3ZpZGVDb250cm9sQ29udGFpbmVyID0gKCk6IEV4aXN0aW5nUHJvdmlkZXIgPT4gKHtcbiAgcHJvdmlkZTogQ29udHJvbENvbnRhaW5lcixcbiAgdXNlRXhpc3Rpbmc6IEZvcm1Hcm91cERpcmVjdGl2ZSxcbn0pO1xuIl19