import { OnInit, OnDestroy } from '@angular/core';
import { DialogRef } from '@progress/kendo-angular-dialog';
import { MJArtifactEntity, MJArtifactVersionEntity, MJCollectionEntity } from '@memberjunction/core-entities';
import { ComponentSpec } from '@memberjunction/interactive-component-types';
import * as i0 from "@angular/core";
export interface ArtifactLoadResult {
    spec: ComponentSpec;
    artifactID: string;
    versionID: string;
    versionNumber: number;
    artifactName: string;
}
export declare class ArtifactLoadDialogComponent implements OnInit, OnDestroy {
    dialog: DialogRef;
    activeTab: number;
    artifacts: MJArtifactEntity[];
    artifactVersions: MJArtifactVersionEntity[];
    selectedArtifact: MJArtifactEntity | null;
    selectedVersion: MJArtifactVersionEntity | null;
    collections: MJCollectionEntity[];
    selectedCollection: MJCollectionEntity | null;
    collectionArtifacts: MJArtifactEntity[];
    searchTerm: string;
    selectedArtifactType: string;
    userEmail: string;
    currentPage: number;
    pageSize: number;
    totalArtifacts: number;
    hasMorePages: boolean;
    isLoading: boolean;
    isLoadingVersions: boolean;
    isLoadingCollections: boolean;
    isFilterPanelCollapsed: boolean;
    previewSpec: ComponentSpec | null;
    previewError: string | null;
    showJsonPreview: boolean;
    private metadata;
    private destroy$;
    private searchSubject;
    constructor(dialog: DialogRef);
    ngOnInit(): Promise<void>;
    ngOnDestroy(): void;
    loadArtifacts(): Promise<void>;
    loadCollections(): Promise<void>;
    selectCollection(collection: MJCollectionEntity): Promise<void>;
    private buildArtifactFilter;
    selectArtifact(artifact: MJArtifactEntity): Promise<void>;
    loadVersions(artifactId: string): Promise<void>;
    selectVersion(version: MJArtifactVersionEntity): Promise<void>;
    loadPreview(version: MJArtifactVersionEntity): Promise<void>;
    filterArtifacts(): Promise<void>;
    onSearchInput(): void;
    onArtifactTypeChange(): void;
    nextPage(): Promise<void>;
    previousPage(): Promise<void>;
    canGoNext(): boolean;
    canGoPrevious(): boolean;
    getTotalPages(): number;
    toggleFilterPanel(): void;
    getActiveFilterCount(): number;
    canLoad(): boolean;
    cancel(): void;
    load(): void;
    onTabSelect(index: number): void;
    getArtifactsByTab(): MJArtifactEntity[];
    toggleJsonPreview(): void;
    getPreviewJSON(): string;
    /** Case-insensitive UUID check whether an artifact is the currently selected artifact. */
    IsArtifactSelected(artifact: MJArtifactEntity): boolean;
    /** Case-insensitive UUID check whether a collection is the currently selected collection. */
    IsCollectionSelected(collection: MJCollectionEntity): boolean;
    /** Case-insensitive UUID check whether a version is the currently selected version. */
    IsVersionSelected(version: MJArtifactVersionEntity): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<ArtifactLoadDialogComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ArtifactLoadDialogComponent, "app-artifact-load-dialog", never, {}, {}, never, never, false, never>;
}
//# sourceMappingURL=artifact-load-dialog.component.d.ts.map