import { Controller } from '@hotwired/stimulus';
import { PhotoSwipeOptions, PhotoSwipeEventsMap, PhotoSwipeFiltersMap } from 'photoswipe';
import PhotoSwipeLightbox from 'photoswipe/lightbox';
export declare type Func = any;
export declare type Handlers = {
    [E in keyof PhotoSwipeEventsMap]: Func[];
};
export declare type Filters = {
    [E in keyof PhotoSwipeFiltersMap]: Func[];
};
export interface Options {
    element?: HTMLElement;
    photoswipe?: Partial<PhotoSwipeOptions>;
    handlers?: Handlers;
    filters?: Filters;
}
export declare class UsePhotoSwipe {
    lightbox?: PhotoSwipeLightbox;
    constructor(controller: Controller, options: Options);
    destroy(): void;
}
export declare function usePhotoSwipe(controller: Controller, options: Options): UsePhotoSwipe;
