import { EventEmitter, OnDestroy, OnInit } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { Subscription } from 'rxjs';
import { ErrorMessage, Journey } from '../../../../../domain';
import { FlagType } from '../../../../../domain/case-flag';
import { CaseFlagRefdataService, MultipageComponentStateService } from '../../../../../services';
import { CaseFlagState, FlagsWithFormGroupPath } from '../../domain';
import { CaseFlagFormFields, CaseFlagWizardStepTitle } from '../../enums';
import { AbstractJourneyComponent } from '../../../base-field/abstract-journey.component';
import * as i0 from "@angular/core";
export declare class SelectFlagTypeComponent extends AbstractJourneyComponent implements OnInit, OnDestroy, Journey {
    private readonly caseFlagRefdataService;
    formGroup: FormGroup;
    jurisdiction: string;
    caseTypeId: string;
    hmctsServiceId: string;
    isDisplayContextParameterExternal: boolean;
    isDisplayContextParameter2Point1Enabled: boolean;
    selectedFlagsLocation: FlagsWithFormGroupPath;
    caseFlagStateEmitter: EventEmitter<CaseFlagState>;
    flagCommentsOptionalEmitter: EventEmitter<any>;
    flagTypeSubJourneyEmitter: EventEmitter<any>;
    flagTypes: FlagType[];
    errorMessages: ErrorMessage[];
    flagTypeNotSelectedErrorMessage: string;
    flagTypeErrorMessage: string;
    flagRefdata$: Subscription;
    refdataError: boolean;
    cachedPath: (FlagType | false)[];
    cachedFlagType: FlagType;
    flagTypeControlChangesSubscription: Subscription;
    caseFlagFormField: typeof CaseFlagFormFields;
    isCaseLevelFlag: boolean;
    cachedRDFlagTypes: FlagType[];
    subJourneyIndex: number;
    private readonly maxCharactersForOtherFlagType;
    private readonly otherFlagTypeCode;
    private readonly caseLevelCaseFlagsFieldId;
    get caseFlagWizardStepTitle(): typeof CaseFlagWizardStepTitle;
    constructor(caseFlagRefdataService: CaseFlagRefdataService, pageStateService: MultipageComponentStateService);
    get selectedFlagType(): FlagType | null;
    get otherFlagTypeSelected(): boolean;
    ngOnInit(): void;
    handleBackButtonSubJourney(event: Event): void;
    addState(data: number, url?: string): void;
    ngOnDestroy(): void;
    checkForExistingPath(): void;
    onNext(): void;
    private emitCaseFlagState;
    private emitFlagCommentsOptional;
    private handleFlagTypeSelection;
    private loadChildFlagTypes;
    private completeSubJourney;
    onPrevious(): void;
    identifyFlagType(_: number, flagType: FlagType): string;
    private validateForm;
    processFlagTypes(flagTypes: FlagType[]): void;
    private onRefdataError;
    next(): void;
    previous(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SelectFlagTypeComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SelectFlagTypeComponent, "ccd-select-flag-type", never, { "formGroup": { "alias": "formGroup"; "required": false; }; "jurisdiction": { "alias": "jurisdiction"; "required": false; }; "caseTypeId": { "alias": "caseTypeId"; "required": false; }; "hmctsServiceId": { "alias": "hmctsServiceId"; "required": false; }; "isDisplayContextParameterExternal": { "alias": "isDisplayContextParameterExternal"; "required": false; }; "isDisplayContextParameter2Point1Enabled": { "alias": "isDisplayContextParameter2Point1Enabled"; "required": false; }; "selectedFlagsLocation": { "alias": "selectedFlagsLocation"; "required": false; }; }, { "caseFlagStateEmitter": "caseFlagStateEmitter"; "flagCommentsOptionalEmitter": "flagCommentsOptionalEmitter"; "flagTypeSubJourneyEmitter": "flagTypeSubJourneyEmitter"; }, never, never, false, never>;
}
//# sourceMappingURL=select-flag-type.component.d.ts.map