import type { NobjcObject } from "objc-js";
import type { _NSPanel } from "../AppKit/NSPanel.js";
import type { _NSScreen } from "../AppKit/NSScreen.js";
import type { _NSDictionary } from "../Foundation/NSDictionary.js";
import type { _QLPreviewItem } from "./QLPreviewItem.js";
import type { _QLPreviewPanelDataSource } from "./QLPreviewPanelDataSource.js";
export declare class _QLPreviewPanel extends _NSPanel {
    static alloc(): _QLPreviewPanel;
    static new(): _QLPreviewPanel;
    init(): _QLPreviewPanel;
    /**
     * Returns the shared Quick Look preview panel instance. This method creates the panel if it doesn’t exist yet. Use ``QuickLookUI/QLPreviewPanel/sharedPreviewPanelExists`` if you want to determine whether the panel exists without creating it. - Returns: The shared Quick Look preview panel instance for the application.
     */
    static sharedPreviewPanel(): _QLPreviewPanel;
    /**
     * Returns a Boolean value that indicates whether the system has created a shared Quick Look preview panel. - Returns: <doc ://com.apple.documentation/documentation/objectivec/yes> if the shared Quick Look preview panel instance has been created, otherwise <doc ://com.apple.documentation/documentation/objectivec/no>.
     */
    static sharedPreviewPanelExists(): boolean;
    /**
     * Asks the preview panel to update its current controller. The preview panel automatically updates its controller (by searching the responder chain) whenever the main or key window changes. You should only invoke this method if the responder chain changes without explicit notice.
     */
    updateController(): void;
    /**
     * Asks the preview panel to reload its data from its data source. This method doesn’t refresh the visible item if it hasn’t changed.
     */
    reloadData(): void;
    /** Asks the preview panel to recompute the preview of the current preview item. */
    refreshCurrentPreviewItem(): void;
    /**
     * Instructs the panel to enter full screen mode. If the panel isn’t onscreen, the panel goes directly to full screen mode. The panel chooses the appropriate screen depending on where the panel is or, if entering fullscreen directly, where the panel zooms from. - Parameters: - screen: This parameter isn’t currently used—pass `nil`. - options: This parameter isn’t currently used—pass `nil`. - Returns: <doc ://com.apple.documentation/documentation/objectivec/yes> if the panel was able to enter full screen mode; otherwise, <doc ://com.apple.documentation/documentation/objectivec/no>.
     */
    enterFullScreenMode$withOptions$(screen: _NSScreen, options: _NSDictionary): boolean;
    /**
     * Instructs the panel to exit full screen mode. - Parameters: - options: This parameter isn’t used — pass `nil`.
     */
    exitFullScreenModeWithOptions$(options: _NSDictionary): void;
    /**
     * The current first responder accepting to control the preview panel. You should never change the preview panel’s state (for example, its delegate, datasource, and so on) if you aren’t controlling it.
     */
    currentController(): NobjcObject;
    /** The preview panel data source. */
    dataSource(): _QLPreviewPanelDataSource;
    setDataSource$(value: _QLPreviewPanelDataSource): void;
    /**
     * The index of the current preview item. The value is `NSNotFound` if there’s no current preview item.
     */
    currentPreviewItemIndex(): number;
    setCurrentPreviewItemIndex$(value: number): void;
    /**
     * The currently previewed item. The value is `nil` if there’s no current preview item.
     */
    currentPreviewItem(): _QLPreviewItem;
    /**
     * The preview panel’s display state. This property is an opaque object that Quick Look uses to get and set the current display state of the preview. The display state could be, for example, the currently displayed page, the zoom factor on an image, or the position in a movie. You can use this property to get and save the current display state of the preview before switching to another. This saving allows you to restore a preview later on when the user switches back to it.
     */
    displayState(): NobjcObject;
    setDisplayState$(value: NobjcObject): void;
    /**
     * The property that indicates whether the panel is in full screen mode. The value is <doc ://com.apple.documentation/documentation/objectivec/yes> if the panel is currently open and in full screen mode; otherwise it’s <doc ://com.apple.documentation/documentation/objectivec/no>.
     */
    inFullScreenMode(): boolean;
}
