import { type Ref } from "./invoke.js";
import type { BrowserViewConstructorOptions, Rectangle } from "@todesktop/client-electron-types";
/**
 * Methods for interacting with ToDesktop browser views.
 *
 * @remarks
 * This package exposes a number of methods for interacting with ToDesktop
 * browser views, allowing you to partition a single window into several
 * independent WebViews, and provide messaging between them.
 *
 * Views are useful, for example, to create a tabbed interface for your app
 * split on the context your user wants to access.
 *
 * @experimental
 * @public
 * @packageDocumentation
 */
/**
 * Creates a new BrowserView.
 *
 * @param options - BrowserView constructor options.
 * @returns Identifier for the newly created BrowserView.
 * @public
 */
export declare function create(options: BrowserViewConstructorOptions): Promise<Ref>;
/**
 * Resizes and moves the BrowserView to the supplied bounds relative to the window.
 *
 * @param options - ref: Reference for the BrowserView; bounds: `x`, `y`, `width`, and `height` bounds for the BrowserView;
 * @public
 */
export declare function setBounds({ ref, bounds, }: {
    ref: Ref;
    bounds: Rectangle;
}): Promise<void>;
export declare type SetAutoResizeOptions = {
    width: boolean;
    height: boolean;
    horizontal: boolean;
    vertical: boolean;
};
/**
 * Resizes the BrowserView when its parent BrowserWindow dimensions change.
 *
 * @param options - ref: Reference for the BrowserView; dimensions: `x`, `y`, `width`, and `height` dimensions for the BrowserView;
 * @public
 */
export declare function setAutoResize({ ref, dimensions, }: {
    ref: Ref;
    dimensions: SetAutoResizeOptions;
}): Promise<void>;
/**
 * Retrieves a BrowserView's WebContents.
 *
 * @param options - ref: Reference for the BrowserView;
 * @returns Identifier for the BrowserView's WebContents.
 * @public
 */
export declare function getWebContents({ ref }: {
    ref: Ref;
}): Promise<Electron.WebContents>;
