/**
 * Contains validation logic and other computations
 * @module
 */
/// <reference types="node" />
import { ErrorCode } from "./constants";
/** Promise with asynchronous abort semantics */
export declare class CancellablePromise<T> extends Promise<T> {
    _cancel: () => void;
    constructor(executor: (resolve: (value: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => (() => void));
    /**
     * Request a cancellation of this promise. Even if this
     * returns successfully, you still need to wait for the
     * promise to settle. Cancellation will result in rejection
     * with a special error, but it's also possible that the
     * promise resolves or rejects with another error.
     */
    cancel(): void;
}
/** each entry is a uint32 (bandwidth in hz) */
export declare const max2837_ft: number[];
/**
 * Compute nearest freq for bw filter (manual filter)
 *
 * Return final bw round down and less than expected bw.
 */
export declare function computeBasebandFilterBwRoundDownLt(bandwidthHz: number): number;
/**
 * Compute best default value depending on sample rate (auto filter)
 *
 * Return final bw
 */
export declare function computeBasebandFilterBw(bandwidthHz: number): number;
export declare class HackrfError extends Error {
    code: ErrorCode;
    constructor(code: ErrorCode);
}
export declare function checkU32(x: number): number;
export declare const bitChecker: (bits: number) => (x: number) => number;
export declare const checkU8: (x: number) => number;
export declare const checkU16: (x: number) => number;
export declare const checkMax2837Reg: (x: number) => number;
export declare const checkMax2837Value: (x: number) => number;
export declare const checkSi5351cReg: (x: number) => number;
export declare const checkSi5351cValue: (x: number) => number;
export declare function checkRffc5071Reg(x: number): number;
export declare const checkRffc5071Value: (x: number) => number;
export declare const checkSpiflashAddress: (x: number) => number;
export declare const rangeChecker: (min: number, max: number) => (x: number) => number;
export declare const checkBasebandFilterBw: (x: number) => number;
export declare const checkLoFreq: (x: number) => number;
export declare const checkFreq: (x: number) => number;
export declare const checkIFreq: (x: number) => number;
export declare function checkInLength(buf: Buffer, minLength: number): Buffer;
export declare function calcSampleRate(freqHz: number): [number, number];
