import * as tf from '@tensorflow/tfjs-node';
import * as SuperGif from 'libgif';
export * from './read';
interface frameResult {
    index: number;
    totalFrames: number;
    predictions: Array<Object>;
}
interface classifyConfig {
    topk?: number;
    onFrame?: (result: frameResult) => {};
    setGifControl?: (gifControl: typeof SuperGif) => {};
}
interface nsfwjsOptions {
    size: number;
}
export declare function load(options?: {
    size: number;
}): Promise<NSFWJS>;
interface IOHandler {
    load: () => any;
}
export declare class NSFWJS {
    endpoints: string[];
    private options;
    private pathOrIOHandler;
    private model;
    private intermediateModels;
    private normalizationOffset;
    constructor(modelPathBaseOrIOHandler: string | IOHandler, options: nsfwjsOptions);
    load(): Promise<void>;
    infer(img: tf.Tensor3D | ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement, endpoint?: string): tf.Tensor;
    classify(img: tf.Tensor3D | ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement, topk?: number): Promise<Array<{
        className: string;
        probability: number;
    }>>;
    classifyGif(gif: HTMLImageElement, config?: classifyConfig): Promise<Array<Array<{
        className: string;
        probability: number;
    }>>>;
}
export declare const isNSFW: (filename: string, sexy?: number, porn?: number) => Promise<boolean>;
