import { OnChanges, SimpleChanges } from '@angular/core';
import { DomSanitizer } from '@angular/platform-browser';
import { ExtendedFormControl } from '../../../../core/models/system/extended-form-control.model';
import { FormControlComponentModel } from '../../../../core/models/component-models/form-control-component.model';
import { DprOptionModel } from '../../../../features/data-population/models/dpr-option.model';
import { BaseFormControlComponent } from '../../../../shared/base/base-form-control.component';
import { PaginationHelper } from '../../../../shared/utilities/pagination-helper';
import { DataPopulationRuleService } from '../../../../features/data-population/services/data-population-rule.service';
import { FormSubmitBroadcastService } from '../../../../core/services/form-submit-broadcast.service';
import * as i0 from "@angular/core";
export declare class RadioComponent extends BaseFormControlComponent<FormControlComponentModel, ExtendedFormControl> implements OnChanges {
    private dpService;
    protected submitBroadcastService: FormSubmitBroadcastService;
    /** Constraints parsed from form control metadata for validations or masks */
    constraints: any;
    /** Pagination helper instance for paginated option loading */
    pager: PaginationHelper<DprOptionModel>;
    constructor(sanitizer: DomSanitizer, dpService: DataPopulationRuleService, submitBroadcastService: FormSubmitBroadcastService);
    /**
     * Lifecycle hook triggered when input properties change.
     * Handles re-initialization of pager and config updates.
     *
     * @param changes - The object containing property change information.
     */
    ngOnChanges(changes: SimpleChanges): void;
    /**
     * Applies dynamic class based on option content.
     * Used for skin type 'dropdown' rendering.
     *
     * @param option - The option to style.
     * @returns CSS class string for the dropdown option.
     */
    applyDropdownOptionClass(option: any): string;
    /**
     * Determines if the current skin is a dropdown.
     * Used to toggle template rendering logic.
     */
    get isDropdownSkin(): boolean;
    /**
     * Handles the radio button selection change.
     * Updates the reactive form control value and marks it as touched.
     *
     * @param value - Selected value to assign to the form control.
     */
    onSelectionChange(value: string): void;
    /**
     * Returns the currently loaded options from pager.
     */
    get options(): DprOptionModel[];
    /** Loads the next page of radio options */
    nextPage(): void;
    /** Loads the previous page of radio options */
    previousPage(): void;
    /** TrackBy function for *ngFor to optimize DOM re-rendering */
    trackByValue: (_i: number, o: DprOptionModel) => any;
    /**
     * Generates unique option ID for accessibility and tracking.
     *
     * @param opt - Current option item.
     * @param i - Index of the option.
     */
    getOptionId: (opt: DprOptionModel, i: number) => string;
    /**
     * Lifecycle hook triggered on component destruction.
     * Cleans up pager resources and calls base class destroy logic.
     */
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<RadioComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<RadioComponent, "nju-radio", never, {}, {}, never, never, false, never>;
}
