import * as _angular_core from '@angular/core';
import { AfterViewInit, EventEmitter } from '@angular/core';
import { ZIcon } from '@shival99/z-ui/components/z-icon';
import { ClassValue } from 'clsx';
import { LayoutConfig, ThemeConfig, ControlVisibilityConfig, GroupVisibilityConfig, AutoActionConfig, ViewerConfig, PdfJsViewerComponent } from 'ng2-pdfjs-viewer';
import * as _shival99_z_ui_components_z_gallery from '@shival99/z-ui/components/z-gallery';
import { SafeHtml } from '@angular/platform-browser';
import { OverlayRef } from '@angular/cdk/overlay';
import * as class_variance_authority_types from 'class-variance-authority/types';
import { VariantProps } from 'class-variance-authority';

type ZGalleryMode = 'grid' | 'list';
type ZGallerySize = 'sm' | 'default' | 'lg';
type ZGalleryToggleSize = 'xs' | 'sm' | 'default' | 'lg';
type ZGalleryPdfViewerZoom = 'auto' | 'page-fit' | 'page-width' | 'page-actual' | `${number}%`;
type ZGalleryPdfViewerCursor = 'select' | 'hand' | 'zoom';
type ZGalleryPdfViewerScroll = 'vertical' | 'horizontal' | 'wrapped' | 'page';
type ZGalleryPdfViewerSpread = 'none' | 'odd' | 'even';
type ZGalleryPdfViewerPageMode = 'none' | 'thumbs' | 'bookmarks' | 'attachments';
interface ZGalleryPdfViewerConfig {
    viewerFolder?: string;
    locale?: string;
    showSpinner?: boolean;
    useOnlyCssZoom?: boolean;
    diagnosticLogs?: boolean;
    showOpenFile?: boolean;
    showAnnotations?: boolean;
    showDownload?: boolean;
    showViewBookmark?: boolean;
    showPrint?: boolean;
    showFullScreen?: boolean;
    showFind?: boolean;
    downloadOnLoad?: boolean;
    printOnLoad?: boolean;
    rotateCW?: boolean;
    rotateCCW?: boolean;
    showLastPageOnLoad?: boolean;
    showToolbarLeft?: boolean;
    showToolbarMiddle?: boolean;
    showToolbarRight?: boolean;
    showSecondaryToolbarToggle?: boolean;
    showSidebar?: boolean;
    showSidebarLeft?: boolean;
    showSidebarRight?: boolean;
    toolbarDensity?: LayoutConfig['toolbarDensity'];
    sidebarWidth?: string;
    toolbarPosition?: LayoutConfig['toolbarPosition'];
    sidebarPosition?: LayoutConfig['sidebarPosition'];
    responsiveBreakpoint?: string | number;
    zoom?: ZGalleryPdfViewerZoom;
    rotation?: 0 | 90 | 180 | 270;
    cursor?: ZGalleryPdfViewerCursor;
    scroll?: ZGalleryPdfViewerScroll;
    spread?: ZGalleryPdfViewerSpread;
    pageMode?: ZGalleryPdfViewerPageMode;
    page?: number;
    iframeBorder?: string | number;
    theme?: ThemeConfig['theme'];
    primaryColor?: string;
    backgroundColor?: string;
    pageBorderColor?: string;
    pageSpacing?: ThemeConfig['pageSpacing'];
    toolbarColor?: string;
    textColor?: string;
    borderRadius?: string;
    customCSS?: string;
    cspNonce?: string;
    iframeTitle?: string;
    urlValidation?: boolean;
    controlVisibility?: ControlVisibilityConfig;
    groupVisibility?: GroupVisibilityConfig;
    autoActions?: AutoActionConfig;
    viewerConfig?: ViewerConfig;
    themeConfig?: ThemeConfig;
    layoutConfig?: LayoutConfig;
}
interface ZGalleryFile {
    id: string;
    name: string;
    size: number;
    type: string;
    url?: string;
    downloadUrl?: string;
    thumbnailUrl?: string;
    createdAt?: Date;
    updatedAt?: Date;
}
type ZFileCategory = 'image' | 'pdf' | 'word' | 'excel' | 'powerpoint' | 'video' | 'audio' | 'archive' | 'code' | 'text' | 'unknown';
interface ZFileCategoryStyle {
    bg: string;
    text: string;
    label: string;
    icon: string;
}
declare const FILE_CATEGORY_STYLES: Record<ZFileCategory, ZFileCategoryStyle>;
interface ZGalleryControl {
    setMode: (mode: ZGalleryMode) => void;
    getMode: () => ZGalleryMode;
    getFiles: () => ZGalleryFile[];
    openPreview: (file: ZGalleryFile) => void;
    closePreview: () => void;
    selectAll: () => void;
    deselectAll: () => void;
    toggleSelection: (file: ZGalleryFile) => void;
    getSelectedFiles: () => ZGalleryFile[];
    isSelected: (file: ZGalleryFile) => boolean;
}
/**
 * Action types emitted by gallery events
 */
type ZGalleryActionType = 'select' | 'deselect' | 'select-all' | 'deselect-all' | 'delete' | 'download' | 'preview';
/**
 * Event payload for zOnAction output
 */
interface ZGalleryActionEvent {
    type: ZGalleryActionType;
    file?: ZGalleryFile;
    files?: ZGalleryFile[];
}
/**
 * Selection change event
 */
interface ZGallerySelectionChange {
    selectedFiles: ZGalleryFile[];
    addedFiles?: ZGalleryFile[];
    removedFiles?: ZGalleryFile[];
}
interface ZGalleryPreviewOptions {
    file: ZGalleryFile;
    files?: ZGalleryFile[];
    zDownload?: boolean;
    zShowRemove?: boolean;
    zPdfViewerConfig?: ZGalleryPdfViewerConfig;
    zTrustedResourceOrigins?: string[];
    zOnClose?: () => void;
    zOnDownload?: (file: ZGalleryFile) => void;
    zOnNavigate?: (file: ZGalleryFile) => void;
    zOnRemove?: (file: ZGalleryFile) => void;
}
type ZGalleryPreviewItemOptions = Omit<ZGalleryPreviewOptions, 'file' | 'files'>;

declare class ZGalleryComponent implements AfterViewInit {
    readonly zFiles: _angular_core.InputSignal<ZGalleryFile[]>;
    readonly zMode: _angular_core.ModelSignal<ZGalleryMode>;
    readonly zSize: _angular_core.InputSignal<ZGallerySize>;
    readonly zColumns: _angular_core.InputSignal<number>;
    readonly zItemWidth: _angular_core.InputSignal<string | null>;
    readonly zLoading: _angular_core.InputSignal<boolean>;
    readonly zSkeletonRows: _angular_core.InputSignal<number>;
    readonly zSkeletonItems: _angular_core.InputSignal<number | null>;
    readonly zShowDownload: _angular_core.InputSignal<boolean>;
    readonly zShowPreview: _angular_core.InputSignal<boolean>;
    readonly zShowRemove: _angular_core.InputSignal<boolean>;
    readonly zPdfViewerConfig: _angular_core.InputSignal<ZGalleryPdfViewerConfig>;
    readonly zTrustedResourceOrigins: _angular_core.InputSignal<string[]>;
    readonly zShowModeToggle: _angular_core.InputSignal<boolean>;
    readonly zShowSearch: _angular_core.InputSignal<boolean>;
    readonly zServerSearch: _angular_core.InputSignal<boolean>;
    readonly zSearchDebounce: _angular_core.InputSignal<number>;
    readonly zSearchPlaceholder: _angular_core.InputSignal<string>;
    readonly zToggleSize: _angular_core.InputSignal<ZGalleryToggleSize>;
    readonly zTitle: _angular_core.InputSignal<string>;
    readonly zEmptyText: _angular_core.InputSignal<string>;
    readonly zEmptyIcon: _angular_core.InputSignal<ZIcon>;
    readonly zClass: _angular_core.InputSignal<ClassValue>;
    readonly zSelectable: _angular_core.InputSignal<boolean>;
    readonly zSelectedFiles: _angular_core.ModelSignal<ZGalleryFile[]>;
    readonly zOnDownload: _angular_core.OutputEmitterRef<ZGalleryFile>;
    readonly zOnPreview: _angular_core.OutputEmitterRef<ZGalleryFile>;
    readonly zOnRemove: _angular_core.OutputEmitterRef<ZGalleryFile>;
    readonly zModeChange: _angular_core.OutputEmitterRef<ZGalleryMode>;
    readonly zSearchChange: _angular_core.OutputEmitterRef<string>;
    readonly zControl: _angular_core.OutputEmitterRef<ZGalleryControl>;
    readonly zSelectionChange: _angular_core.OutputEmitterRef<ZGallerySelectionChange>;
    readonly zOnAction: _angular_core.OutputEmitterRef<ZGalleryActionEvent>;
    protected readonly modeIndex: _angular_core.WritableSignal<number | null>;
    protected readonly previewFile: _angular_core.WritableSignal<ZGalleryFile | null>;
    protected readonly searchInputQuery: _angular_core.WritableSignal<string>;
    protected readonly searchQuery: _angular_core.WritableSignal<string>;
    protected readonly skeletonItems: _angular_core.Signal<number[]>;
    protected readonly currentMode: _angular_core.Signal<ZGalleryMode>;
    protected readonly gridColumnsClass: _angular_core.Signal<string>;
    protected readonly gridTemplateColumns: _angular_core.Signal<string | null>;
    protected readonly containerClasses: _angular_core.Signal<string>;
    protected readonly showHeader: _angular_core.Signal<string | boolean>;
    protected readonly headerControlHeight: _angular_core.Signal<"1.75rem" | "2rem" | "2.5rem" | "2.25rem">;
    protected readonly skeletonMediaHeight: _angular_core.Signal<"9rem" | "14rem" | "11rem">;
    protected readonly toggleIconSize: _angular_core.Signal<"14" | "16" | "20" | "18">;
    protected readonly searchInputSize: _angular_core.Signal<"sm" | "default" | "lg">;
    protected readonly filteredFiles: _angular_core.Signal<ZGalleryFile[]>;
    protected readonly selectedIds: _angular_core.Signal<Set<string>>;
    protected readonly isAllSelected: _angular_core.Signal<boolean>;
    protected readonly isIndeterminate: _angular_core.Signal<boolean>;
    protected readonly selectedCount: _angular_core.Signal<number>;
    ngAfterViewInit(): void;
    protected onSearchChange(query: string | number | null): void;
    protected onDownload(file: ZGalleryFile): void;
    protected onPreview(file: ZGalleryFile): void;
    protected onRemove(file: ZGalleryFile): void;
    protected closePreview(): void;
    protected onNavigatePreview(file: ZGalleryFile): void;
    protected onRemoveFromPreview(file: ZGalleryFile): void;
    protected isFileSelected(file: ZGalleryFile): boolean;
    protected toggleSelection(file: ZGalleryFile): void;
    protected selectAll(): void;
    protected deselectAll(): void;
    protected toggleSelectAll(): void;
    protected onBulkDelete(): void;
    protected onBulkDownload(): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZGalleryComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<ZGalleryComponent, "z-gallery", ["zGallery"], { "zFiles": { "alias": "zFiles"; "required": false; "isSignal": true; }; "zMode": { "alias": "zMode"; "required": false; "isSignal": true; }; "zSize": { "alias": "zSize"; "required": false; "isSignal": true; }; "zColumns": { "alias": "zColumns"; "required": false; "isSignal": true; }; "zItemWidth": { "alias": "zItemWidth"; "required": false; "isSignal": true; }; "zLoading": { "alias": "zLoading"; "required": false; "isSignal": true; }; "zSkeletonRows": { "alias": "zSkeletonRows"; "required": false; "isSignal": true; }; "zSkeletonItems": { "alias": "zSkeletonItems"; "required": false; "isSignal": true; }; "zShowDownload": { "alias": "zShowDownload"; "required": false; "isSignal": true; }; "zShowPreview": { "alias": "zShowPreview"; "required": false; "isSignal": true; }; "zShowRemove": { "alias": "zShowRemove"; "required": false; "isSignal": true; }; "zPdfViewerConfig": { "alias": "zPdfViewerConfig"; "required": false; "isSignal": true; }; "zTrustedResourceOrigins": { "alias": "zTrustedResourceOrigins"; "required": false; "isSignal": true; }; "zShowModeToggle": { "alias": "zShowModeToggle"; "required": false; "isSignal": true; }; "zShowSearch": { "alias": "zShowSearch"; "required": false; "isSignal": true; }; "zServerSearch": { "alias": "zServerSearch"; "required": false; "isSignal": true; }; "zSearchDebounce": { "alias": "zSearchDebounce"; "required": false; "isSignal": true; }; "zSearchPlaceholder": { "alias": "zSearchPlaceholder"; "required": false; "isSignal": true; }; "zToggleSize": { "alias": "zToggleSize"; "required": false; "isSignal": true; }; "zTitle": { "alias": "zTitle"; "required": false; "isSignal": true; }; "zEmptyText": { "alias": "zEmptyText"; "required": false; "isSignal": true; }; "zEmptyIcon": { "alias": "zEmptyIcon"; "required": false; "isSignal": true; }; "zClass": { "alias": "zClass"; "required": false; "isSignal": true; }; "zSelectable": { "alias": "zSelectable"; "required": false; "isSignal": true; }; "zSelectedFiles": { "alias": "zSelectedFiles"; "required": false; "isSignal": true; }; }, { "zMode": "zModeChange"; "zSelectedFiles": "zSelectedFilesChange"; "zOnDownload": "zOnDownload"; "zOnPreview": "zOnPreview"; "zOnRemove": "zOnRemove"; "zModeChange": "zModeChange"; "zSearchChange": "zSearchChange"; "zControl": "zControl"; "zSelectionChange": "zSelectionChange"; "zOnAction": "zOnAction"; }, never, never, true, never>;
}

declare class ZGalleryItemComponent {
    readonly file: _angular_core.InputSignal<ZGalleryFile>;
    readonly zMode: _angular_core.InputSignal<ZGalleryMode>;
    readonly zSize: _angular_core.InputSignal<ZGallerySize>;
    readonly zShowDownload: _angular_core.InputSignal<boolean>;
    readonly zShowPreview: _angular_core.InputSignal<boolean>;
    readonly zShowRemove: _angular_core.InputSignal<boolean>;
    readonly zSelectable: _angular_core.InputSignal<boolean>;
    readonly zSelected: _angular_core.InputSignal<boolean>;
    readonly zOnDownload: _angular_core.OutputEmitterRef<ZGalleryFile>;
    readonly zOnPreview: _angular_core.OutputEmitterRef<ZGalleryFile>;
    readonly zOnRemove: _angular_core.OutputEmitterRef<ZGalleryFile>;
    readonly zOnSelect: _angular_core.OutputEmitterRef<ZGalleryFile>;
    protected readonly isLoading: _angular_core.WritableSignal<boolean>;
    protected readonly formattedSize: _angular_core.Signal<string>;
    protected readonly category: _angular_core.Signal<_shival99_z_ui_components_z_gallery.ZFileCategory>;
    protected readonly isImage: _angular_core.Signal<boolean>;
    protected readonly fileExtension: _angular_core.Signal<string>;
    protected readonly mediaHeightClass: _angular_core.Signal<"h-36" | "h-56" | "h-44">;
    protected readonly formattedDate: _angular_core.Signal<string | null>;
    protected readonly categoryStyle: _angular_core.Signal<ZFileCategoryStyle & {
        icon: ZIcon;
    }>;
    protected readonly fileTypeClasses: _angular_core.Signal<string>;
    protected readonly canPreview: _angular_core.Signal<boolean>;
    protected onImageLoad(): void;
    protected onImageError(): void;
    protected onDownload(event: Event): void;
    protected onPreviewClick(event: Event): void;
    protected onPreview(): void;
    protected onItemClick(): void;
    protected onRemove(event: Event): void;
    protected onSelectClick(event: Event): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZGalleryItemComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<ZGalleryItemComponent, "z-gallery-item", never, { "file": { "alias": "file"; "required": true; "isSignal": true; }; "zMode": { "alias": "zMode"; "required": false; "isSignal": true; }; "zSize": { "alias": "zSize"; "required": false; "isSignal": true; }; "zShowDownload": { "alias": "zShowDownload"; "required": false; "isSignal": true; }; "zShowPreview": { "alias": "zShowPreview"; "required": false; "isSignal": true; }; "zShowRemove": { "alias": "zShowRemove"; "required": false; "isSignal": true; }; "zSelectable": { "alias": "zSelectable"; "required": false; "isSignal": true; }; "zSelected": { "alias": "zSelected"; "required": false; "isSignal": true; }; }, { "zOnDownload": "zOnDownload"; "zOnPreview": "zOnPreview"; "zOnRemove": "zOnRemove"; "zOnSelect": "zOnSelect"; }, never, never, true, never>;
}

declare class ZGalleryFileIconComponent {
    readonly file: _angular_core.InputSignal<ZGalleryFile>;
    readonly zSize: _angular_core.InputSignal<ZGallerySize>;
    readonly zMode: _angular_core.InputSignal<ZGalleryMode>;
    protected readonly imageError: _angular_core.WritableSignal<boolean>;
    protected readonly isLoading: _angular_core.WritableSignal<boolean>;
    protected readonly category: _angular_core.Signal<ZFileCategory>;
    protected readonly style: _angular_core.Signal<_shival99_z_ui_components_z_gallery.ZFileCategoryStyle>;
    protected readonly showThumbnail: _angular_core.Signal<boolean | "" | undefined>;
    protected readonly containerClasses: _angular_core.Signal<string>;
    protected onImageLoad(): void;
    protected onImageError(event: Event): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZGalleryFileIconComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<ZGalleryFileIconComponent, "z-gallery-file-icon", never, { "file": { "alias": "file"; "required": true; "isSignal": true; }; "zSize": { "alias": "zSize"; "required": false; "isSignal": true; }; "zMode": { "alias": "zMode"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}

declare class ZGalleryPreviewItemDirective {
    readonly zGalleryPreviewItem: _angular_core.InputSignal<ZGalleryFile>;
    readonly zGalleryPreviewFiles: _angular_core.InputSignal<ZGalleryFile[] | null>;
    readonly zGalleryPreviewOptions: _angular_core.InputSignal<ZGalleryPreviewItemOptions>;
    readonly zDisabled: _angular_core.InputSignalWithTransform<boolean, string | boolean>;
    readonly zOnPreview: _angular_core.OutputEmitterRef<ZGalleryFile>;
    private readonly _elementRef;
    private readonly _previewService;
    protected readonly hostRole: _angular_core.Signal<"button" | null>;
    protected readonly hostTabIndex: _angular_core.Signal<0 | -1 | null>;
    protected readonly hostAriaDisabled: _angular_core.Signal<true | null>;
    protected openPreview(event?: Event): void;
    private _isNativeInteractive;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZGalleryPreviewItemDirective, never>;
    static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ZGalleryPreviewItemDirective, "[zGalleryPreviewItem], [z-gallery-preview-item]", ["zGalleryPreviewItem"], { "zGalleryPreviewItem": { "alias": "zGalleryPreviewItem"; "required": true; "isSignal": true; }; "zGalleryPreviewFiles": { "alias": "zGalleryPreviewFiles"; "required": false; "isSignal": true; }; "zGalleryPreviewOptions": { "alias": "zGalleryPreviewOptions"; "required": false; "isSignal": true; }; "zDisabled": { "alias": "zDisabled"; "required": false; "isSignal": true; }; }, { "zOnPreview": "zOnPreview"; }, never, never, true, never>;
}

declare class ZGalleryPreviewComponent {
    private readonly _document;
    private readonly _sanitizer;
    readonly file: _angular_core.InputSignal<ZGalleryFile>;
    readonly files: _angular_core.InputSignal<ZGalleryFile[]>;
    readonly zShowRemove: _angular_core.InputSignal<boolean>;
    readonly zPdfViewerConfig: _angular_core.InputSignal<ZGalleryPdfViewerConfig>;
    readonly zTrustedResourceOrigins: _angular_core.InputSignal<string[]>;
    readonly zOnClose: _angular_core.OutputEmitterRef<void>;
    readonly zOnDownload: _angular_core.OutputEmitterRef<ZGalleryFile>;
    readonly zOnNavigate: _angular_core.OutputEmitterRef<ZGalleryFile>;
    readonly zOnRemove: _angular_core.OutputEmitterRef<ZGalleryFile>;
    protected readonly zoomed: _angular_core.WritableSignal<boolean>;
    protected readonly isLoading: _angular_core.WritableSignal<boolean>;
    protected readonly rotation: _angular_core.WritableSignal<number>;
    protected readonly isConverting: _angular_core.WritableSignal<boolean>;
    protected readonly conversionError: _angular_core.WritableSignal<string | null>;
    protected readonly previewError: _angular_core.WritableSignal<boolean>;
    protected readonly docHtmlContent: _angular_core.WritableSignal<SafeHtml | null>;
    protected readonly textContent: _angular_core.WritableSignal<string>;
    protected readonly pdfViewer: _angular_core.Signal<PdfJsViewerComponent | undefined>;
    private readonly _mediaLoaded;
    private _loadingStartTime;
    private readonly _minLoadingTime;
    constructor();
    private _loadFileContent;
    private _loadDocx;
    private _loadExcel;
    private _loadText;
    private _assertSuccessfulResponse;
    private _completeLoading;
    protected readonly currentIndex: _angular_core.Signal<number>;
    protected readonly hasPrev: _angular_core.Signal<boolean>;
    protected readonly hasNext: _angular_core.Signal<boolean>;
    protected readonly isImageFile: _angular_core.Signal<boolean>;
    protected readonly isPdf: _angular_core.Signal<boolean>;
    protected readonly pdfUrl: _angular_core.Signal<string | null>;
    protected readonly pdfViewerId: _angular_core.Signal<string>;
    protected readonly pdfViewerConfig: _angular_core.Signal<ZGalleryPdfViewerConfig>;
    private _mergePdfViewerCss;
    protected readonly isVideo: _angular_core.Signal<boolean>;
    protected readonly isWordFile: _angular_core.Signal<boolean>;
    protected readonly isExcelFile: _angular_core.Signal<boolean>;
    protected readonly isTextFile: _angular_core.Signal<boolean>;
    protected readonly canPreview: _angular_core.Signal<boolean>;
    protected readonly formattedSize: _angular_core.Signal<string>;
    protected readonly imageTransform: _angular_core.Signal<string>;
    private _isAllowedResourceUrl;
    private readonly _trustedOrigins;
    private _normalizeOrigin;
    protected readonly fileIcon: _angular_core.Signal<ZIcon>;
    protected onKeyDown(event: KeyboardEvent): void;
    protected close(): void;
    protected navigate(direction: -1 | 1): void;
    protected toggleZoom(): void;
    protected rotateLeft(): void;
    protected rotateRight(): void;
    protected onImageLoad(): void;
    protected onVideoLoad(): void;
    protected onPdfLoad(): void;
    protected onMediaError(): void;
    protected download(): void;
    protected remove(): void;
    protected onBackdropClick(event: Event): void;
    private _queueMobilePdfFit;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZGalleryPreviewComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<ZGalleryPreviewComponent, "z-gallery-preview", never, { "file": { "alias": "file"; "required": true; "isSignal": true; }; "files": { "alias": "files"; "required": false; "isSignal": true; }; "zShowRemove": { "alias": "zShowRemove"; "required": false; "isSignal": true; }; "zPdfViewerConfig": { "alias": "zPdfViewerConfig"; "required": false; "isSignal": true; }; "zTrustedResourceOrigins": { "alias": "zTrustedResourceOrigins"; "required": false; "isSignal": true; }; }, { "zOnClose": "zOnClose"; "zOnDownload": "zOnDownload"; "zOnNavigate": "zOnNavigate"; "zOnRemove": "zOnRemove"; }, never, never, true, never>;
}

declare class ZGalleryPreviewRef {
    private readonly _overlayRef;
    private _closed;
    componentInstance: ZGalleryPreviewComponent | null;
    readonly zAfterClose: EventEmitter<void>;
    constructor(_overlayRef: OverlayRef | null);
    close(): void;
}

declare class ZGalleryPreviewService {
    private readonly _document;
    private readonly _injector;
    private readonly _overlay;
    private readonly _platformId;
    private readonly _zIndexService;
    open(file: ZGalleryFile, options?: Omit<ZGalleryPreviewOptions, 'file'>): ZGalleryPreviewRef;
    open(options: ZGalleryPreviewOptions): ZGalleryPreviewRef;
    private _createOverlay;
    private _normalizeOptions;
    private _handleDownload;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZGalleryPreviewService, never>;
    static ɵprov: _angular_core.ɵɵInjectableDeclaration<ZGalleryPreviewService>;
}

declare const getFileCategory: (file: ZGalleryFile) => ZFileCategory;
declare const formatFileSize: (bytes: number) => string;
declare const isPreviewable: (file: ZGalleryFile) => boolean;
declare const isImage: (file: ZGalleryFile) => boolean;

declare const zGalleryVariants: (props?: ({
    zSize?: "sm" | "default" | "lg" | null | undefined;
} & class_variance_authority_types.ClassProp) | undefined) => string;
type ZGalleryVariants = VariantProps<typeof zGalleryVariants>;
declare const zGalleryItemVariants: (props?: ({
    zMode?: "grid" | "list" | null | undefined;
    zSize?: "sm" | "default" | "lg" | null | undefined;
} & class_variance_authority_types.ClassProp) | undefined) => string;
type ZGalleryItemVariants = VariantProps<typeof zGalleryItemVariants>;
declare const zGalleryFileIconVariants: (props?: ({
    zSize?: "sm" | "default" | "lg" | null | undefined;
    zMode?: "grid" | "list" | null | undefined;
} & class_variance_authority_types.ClassProp) | undefined) => string;
type ZGalleryFileIconVariants = VariantProps<typeof zGalleryFileIconVariants>;

export { FILE_CATEGORY_STYLES, ZGalleryComponent, ZGalleryFileIconComponent, ZGalleryItemComponent, ZGalleryPreviewComponent, ZGalleryPreviewItemDirective, ZGalleryPreviewRef, ZGalleryPreviewService, formatFileSize, getFileCategory, isImage, isPreviewable, zGalleryFileIconVariants, zGalleryItemVariants, zGalleryVariants };
export type { ZFileCategory, ZFileCategoryStyle, ZGalleryActionEvent, ZGalleryActionType, ZGalleryControl, ZGalleryFile, ZGalleryFileIconVariants, ZGalleryItemVariants, ZGalleryMode, ZGalleryPdfViewerConfig, ZGalleryPdfViewerCursor, ZGalleryPdfViewerPageMode, ZGalleryPdfViewerScroll, ZGalleryPdfViewerSpread, ZGalleryPdfViewerZoom, ZGalleryPreviewItemOptions, ZGalleryPreviewOptions, ZGallerySelectionChange, ZGallerySize, ZGalleryToggleSize, ZGalleryVariants };
