import { OnInit, OnDestroy, EventEmitter } from '@angular/core';
import { MJArtifactEntity, MJArtifactVersionEntity } from '@memberjunction/core-entities';
import { BaseAngularComponent } from '@memberjunction/ng-base-types';
import * as i0 from "@angular/core";
export interface ArtifactSelectionResult {
    artifact: MJArtifactEntity;
    action: 'new-version' | 'update-version';
    versionToUpdate?: MJArtifactVersionEntity;
}
export declare class ArtifactSelectionDialogComponent extends BaseAngularComponent implements OnInit, OnDestroy {
    Visible: boolean;
    Close: EventEmitter<ArtifactSelectionResult | undefined>;
    artifacts: MJArtifactEntity[];
    artifactVersions: MJArtifactVersionEntity[];
    currentPage: number;
    pageSize: number;
    totalArtifacts: number;
    hasMorePages: boolean;
    isLoading: boolean;
    searchTerm: string;
    userEmail: string;
    selectedArtifactType: string;
    showNewArtifactForm: boolean;
    isFilterPanelCollapsed: boolean;
    selectedArtifact: MJArtifactEntity | null;
    selectedVersion: MJArtifactVersionEntity | null;
    versionAction: 'new' | 'update';
    newArtifactName: string;
    newArtifactDescription: string;
    private get metadata();
    private currentUser;
    private destroy$;
    private searchSubject;
    private notificationService;
    private confirmService;
    private cdr;
    ngOnInit(): Promise<void>;
    ngOnDestroy(): void;
    loadArtifacts(): Promise<void>;
    private _artifactFilter;
    filterArtifacts(): Promise<void>;
    selectCreateNew(): void;
    selectArtifact(artifact: MJArtifactEntity): Promise<void>;
    loadVersions(artifactId: string): Promise<void>;
    getNextVersionNumber(): number;
    nextPage(): Promise<void>;
    previousPage(): Promise<void>;
    canGoNext(): boolean;
    canGoPrevious(): boolean;
    getTotalPages(): number;
    toggleFilterPanel(): void;
    onSearchInput(): void;
    onArtifactTypeChange(): void;
    getActiveFilterCount(): number;
    canSave(): boolean;
    getSaveButtonText(): string;
    cancel(): void;
    save(): Promise<void>;
    private createNewArtifact;
    /** Case-insensitive UUID check whether an artifact is the currently selected artifact. */
    IsArtifactSelected(artifact: MJArtifactEntity): boolean;
    /** Case-insensitive UUID check whether a version is the currently selected version. */
    IsVersionSelected(version: MJArtifactVersionEntity): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<ArtifactSelectionDialogComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ArtifactSelectionDialogComponent, "app-artifact-selection-dialog", never, { "Visible": { "alias": "Visible"; "required": false; }; }, { "Close": "Close"; }, never, never, false, never>;
}
//# sourceMappingURL=artifact-selection-dialog.component.d.ts.map