import { BatchNorm2d, Conv2d, type Layer, Tensor } from '@jsgrad/jsgrad/base'; export declare const get_variant_multiples: (variant: string) => number[] | undefined; declare class Upsample { scale_factor: number; mode: 'nearest'; constructor(scale_factor: number, mode?: 'nearest'); call: (x: Tensor) => Tensor; } declare class Conv_Block { conv: Conv2d; bn: BatchNorm2d; constructor(c1: number, c2: number, kernel_size?: number | number[], stride?: number, groups?: number, dilation?: number, padding?: number); call: (x: Tensor) => Tensor; } declare class Bottleneck { cv1: Conv_Block; cv2: Conv_Block; residual: boolean; constructor(c1: number, c2: number, shortcut: boolean, g?: number, kernels?: number[] | number[][], channel_factor?: number); call: (x: Tensor) => Tensor; } declare class C2f { c: number; cv1: Conv_Block; cv2: Conv_Block; bottleneck: Bottleneck[]; constructor(c1: number, c2: number, n?: number, shortcut?: boolean, g?: number, e?: number); call: (x: Tensor) => Tensor; } declare class DFL { c1: number; conv: Conv2d; constructor(c1?: number); call: (x: Tensor) => Tensor; } declare class Darknet { b1: Layer[]; b2: Layer[]; b3: Layer[]; b4: Layer[]; b5: Layer[]; constructor(w: number, r: number, d: number); return_modules: () => Layer[]; call: (x: Tensor) => [Tensor, Tensor, Tensor]; } declare class Yolov8NECK { up: Upsample; n1: C2f; n2: C2f; n3: Conv_Block; n4: C2f; n5: Conv_Block; n6: C2f; constructor(w: number, r: number, d: number); return_modules: () => (Conv_Block | C2f)[]; call: (p3: Tensor, p4: Tensor, p5: Tensor) => [Tensor, Tensor, Tensor]; } declare class DetectionHead { nc: number; ch: number; nl: number; no: number; stride: number[]; dfl: DFL; cv3: Layer[][]; cv2: Layer[][]; constructor(nc?: number, filters?: number[]); call: (x: Tensor[]) => Tensor; } export declare class YOLOv8 { net: Darknet; fpn: Yolov8NECK; head: DetectionHead; constructor(w: number, r: number, d: number, num_classes: number); call: (x: Tensor) => Tensor; return_all_trainable_modules: () => ([number, Layer] | (number | DetectionHead)[])[]; } export declare const get_weights_location: (yolo_variant: string) => Promise; export {};