import { Image } from '../../Image.js';
import type { Point } from '../../geometry/index.js';
import type { FastKeypoint } from '../keypoints/getFastKeypoints.js';
import type { Match } from '../matching/bruteForceMatch.js';
import type { DrawKeypointsOptions } from './drawKeypoints.js';
import type { DrawMatchesOptions } from './drawMatches.js';
export declare const MontageDisposition: {
    readonly HORIZONTAL: "horizontal";
    readonly VERTICAL: "vertical";
};
export type MontageDisposition = (typeof MontageDisposition)[keyof typeof MontageDisposition];
export interface MontageOptions {
    /**
     * Factor by which to scale the images.
     *  @default `1`
     */
    scale?: number;
    /**
     * How should the images be aligned: vertically or horizontally.
     * @default `'horizontal'`
     */
    disposition?: MontageDisposition;
}
export declare class Montage {
    /**
     * Scaled width of the first image.
     */
    readonly sourceWidth: number;
    /**
     * Scaled height of the first image.
     */
    readonly sourceHeight: number;
    /**
     * Scaled width of the second image.
     */
    readonly destinationWidth: number;
    /**
     * Scaled height of the second image.
     */
    readonly destinationHeight: number;
    /**
     * Origin of the destination / second image relative to top-left corner of the Montage.
     */
    readonly destinationOrigin: Point;
    /**
     * Width of the Montage.
     */
    readonly width: number;
    /**
     * Height of the Montage.
     */
    readonly height: number;
    /**
     * Factor by which to scale the images are scaled in the montage.
     */
    readonly scale: number;
    readonly disposition: MontageDisposition;
    /**
     * Image of the Montage.
     */
    image: Image;
    /**
     * Create a Montage of two images. The two images are placed side by side for comparison.
     * @param source - First image.
     * @param destination - Second image.
     * @param options  - Montage options.
     */
    constructor(source: Image, destination: Image, options?: MontageOptions);
    /**
     * Draw keypoints on the Montage.
     * @param keypoints - Keypoints to draw.
     * @param options - Draw keypoints options.
     */
    drawKeypoints(keypoints: FastKeypoint[], options?: DrawKeypointsOptions): void;
    /**
     * Draw the matches between source and destination keypoints.
     * @param matches - Matches to draw.
     * @param sourceKeypoints - Source keypoints.
     * @param destinationKeypoints  - Destination keypoints.
     * @param options - Draw matches options.
     */
    drawMatches(matches: Match[], sourceKeypoints: FastKeypoint[], destinationKeypoints: FastKeypoint[], options?: DrawMatchesOptions): void;
}
//# sourceMappingURL=Montage.d.ts.map