import * as tf from '@tensorflow/tfjs';
import type { Tensor4D } from '@tensorflow/tfjs';
import type { TensorMap } from './tza';
export type UnetProps = {
    weights: TensorMap;
    size: 'small' | 'large' | 'xl' | 'default';
    height: number;
    width: number;
    channels: number;
};
export declare class UNet {
    height: number;
    width: number;
    inChannels: number;
    size: 'small' | 'large' | 'xl' | 'default';
    private _inputTensor;
    model: tf.LayersModel;
    weights: TensorMap;
    constructor({ weights, size, height, width, channels }: UnetProps);
    set inputTensor(inputTensor: Tensor4D);
    execute(inputTensor?: Tensor4D): Promise<tf.Tensor4D>;
    debugBuild(): Promise<tf.LayersModel>;
    build(large?: boolean): Promise<void | tf.LayersModel>;
    private _buildStandard;
    private _buildLarge;
    private convLayer;
    private poolLayer;
    private upsampleLayer;
    private concatenateLayer;
    dispose(): void;
}
