/**
 * @fileoverview Classify · Guided source setup wizard.
 *
 * A multi-step `mj-dialog` that walks an operator through standing up a new
 * content source: Source Type → Entity → Entity Document → Content Type →
 * Taxonomy Strategy → Domain Context → Review & Create. Steps whose prerequisite
 * already exists (e.g. a content type is already configured, or the chosen
 * entity already has an Entity Document) are auto-skipped.
 *
 * The wizard reuses the inline Entity Document create and the seed-taxonomy
 * review components, and the domain-context fields. It owns no business logic
 * beyond assembling the records — persistence is via the entity API
 * (`GetEntityObject` + `Save()` with result checking) threaded through
 * `ProviderToUse`.
 */
import { EventEmitter } from '@angular/core';
import { BaseAngularComponent } from '@memberjunction/ng-base-types';
import { DropdownOption } from '../shared/classify.types';
import { ClassificationContextMode } from './source-type-form.dialog.component';
import * as i0 from "@angular/core";
/** The ordered wizard steps. Some are conditionally skipped at run time. */
type WizardStep = 'source-type' | 'entity' | 'entity-doc' | 'content-type' | 'taxonomy' | 'domain-context' | 'review';
export declare class ClassifySetupWizardComponent extends BaseAngularComponent {
    private cdr;
    /** Emitted after the wizard creates a source, so the host reloads. */
    Created: EventEmitter<{
        SourceID: string;
    }>;
    /** Emitted when the wizard is dismissed without creating anything. */
    Cancelled: EventEmitter<void>;
    Visible: boolean;
    CurrentStep: WizardStep;
    Saving: boolean;
    SourceName: string;
    SourceTypeID: string;
    EntityID: string;
    EntityDocID: string;
    ContentTypeID: string;
    SourceURL: string;
    ClassificationContext: string;
    ClassificationContextMode: ClassificationContextMode;
    SourceTypeOptions: DropdownOption[];
    ContentTypeOptions: DropdownOption[];
    EntityOptions: {
        ID: string;
        Name: string;
    }[];
    /** A pending source ID is created up-front when we reach the taxonomy step so
     *  the embedded seed-taxonomy generator has a real source to sample. */
    PendingSourceID: string | null;
    get IsSubstitutiveMode(): boolean;
    set IsSubstitutiveMode(v: boolean);
    Open(): Promise<void>;
    Close(): void;
    private resetState;
    private loadOptions;
    /** Whether the selected source type is the Entity type (name-based check). */
    get IsEntitySource(): boolean;
    /** EntityInfo for the selected entity, or null. */
    private get selectedEntityInfo();
    get SelectedEntityName(): string;
    /** True when the selected entity has no active Entity Document. */
    get SelectedEntityHasNoDocument(): boolean;
    /** Whether any content type exists (drives the content-type step skip). */
    get HasAnyContentType(): boolean;
    /**
     * The ordered list of steps relevant to the current selections. Steps whose
     * prerequisite already exists are filtered out, so the progress UI + next/back
     * navigation only ever traverse meaningful steps.
     */
    get ActiveSteps(): WizardStep[];
    get StepIndex(): number;
    get TotalSteps(): number;
    get StepLabel(): string;
    get CanGoNext(): boolean;
    get IsLastStep(): boolean;
    Next(): Promise<void>;
    Back(): void;
    EntityDocSaving: boolean;
    NewEntityDocName: string;
    NewEntityDocSelectedFields: Record<string, boolean>;
    /** Fields of the selected entity, for the field-picker in the inline create. */
    get SelectedEntityFields(): {
        Name: string;
        DisplayName: string;
    }[];
    get SelectedEntityDocFieldCount(): number;
    /** Prime the inline-create defaults when entering the entity-doc step. */
    PrimeEntityDocDefaults(): void;
    /** Create the Entity Document for the selected entity, then refresh + select it. */
    CreateEntityDocument(): Promise<void>;
    /** Called by the embedded seed-taxonomy after it persists tags. */
    OnTaxonomyAccepted(_event: {
        Created: number;
    }): void;
    /**
     * Create (once) the content source record so the taxonomy step can sample it.
     * Subsequent edits (domain context) are applied to this same record on Finish.
     */
    private ensurePendingSource;
    /**
     * Create or update the content source from the collected selections. Returns
     * the saved ID, or null on failure. Defaults required NOT NULL columns for
     * entity sources the same way the quick-edit form does.
     */
    private saveSource;
    /** Resolve the entity document ID to store (explicit choice or the entity's only doc). */
    private resolveEntityDocID;
    /** Finish the wizard: persist the (final) source and emit Created. */
    Finish(): Promise<void>;
    get EntityDocOptions(): {
        ID: string;
        Name: string;
    }[];
    get SourceTypeName(): string;
    get ContentTypeName(): string;
    get EntityDocName(): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<ClassifySetupWizardComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ClassifySetupWizardComponent, "classify-setup-wizard", never, {}, { "Created": "Created"; "Cancelled": "Cancelled"; }, never, never, false, never>;
}
export {};
//# sourceMappingURL=classify-setup-wizard.component.d.ts.map