import type { Command } from "../Command.js";
import { CommandRegistry } from "../CommandRegistry.js";
import type { Event } from "../Event.js";
import { EventRegistry } from "../EventRegistry.js";
import type { Operation } from "../Operation.js";
import { OperationRegistry } from "../OperationRegistry.js";
import type { EnhancedFileData, Photo, VisualElement } from "../mobile.js";
/**
 * Arguments for the "photos.display-details" command.
 */
export interface DisplayPhotoDetailsArgs {
    /**
     * The index of the photo to start at.
     */
    startIndex: number;
    /**
     * The photo(s) to display.
     */
    photos: Photo[];
    /**
     * The sender UI element to use as an anchor point for animation when
     * opening the attachment.
     */
    sender: VisualElement;
}
export declare class PhotosCommands extends CommandRegistry {
    protected readonly _prefix = "photos";
    /**
     * Displays a photo in expanded / details view. Mobile only.
     *
     * @mobileOnly
     */
    get displayDetails(): Command<DisplayPhotoDetailsArgs>;
    /**
     * Hides the currently displayed photo details. Mobile only.
     *
     * @mobileOnly
     */
    get hideDetails(): Command;
}
export declare class PhotoOperations extends OperationRegistry {
    protected readonly _prefix = "photos";
    /**
     * Takes a photo using the device camera.
     *
     * @mobileOnly
     */
    get takePhoto(): Operation<EnhancedFileData>;
}
export declare class PhotosEvents extends EventRegistry {
    protected readonly _prefix = "photos";
    /**
     * Raised when photo details are hidden. Mobile only.
     *
     * @mobileOnly
     */
    get detailsHidden(): Event;
}
