import { Exception } from './exception';
import { Instance, LoaderOptions } from './seal';
export type VectorDependencyOptions = {
    readonly Exception: Exception;
};
export type VectorDependencies = {
    ({ Exception }: VectorDependencyOptions): VectorConstructorOptions;
};
export type VectorConstructorOptions = {
    (): Vector;
};
export type Vector = {
    readonly instance: Instance;
    readonly unsafeInject: (instance: Instance) => void;
    readonly delete: () => void;
    readonly from: (array: VectorTypes, type?: StringTypes) => Instance;
    readonly type: string;
    readonly setType: (type: StringTypes) => void;
    readonly size: number;
    readonly getValue: (index: number) => number;
    readonly resize: (size: number, fill: number) => void;
    readonly toArray: () => VectorTypes;
};
export type VectorTypes = Uint8Array | Int32Array | Uint32Array | Float64Array | BigInt64Array | BigUint64Array;
export type StringTypes = 'Uint8Array' | 'Int32Array' | 'Uint32Array' | 'Float64Array' | 'BigInt64Array' | 'BigUint64Array' | 'Modulus';
export declare const VectorInit: ({ loader }: LoaderOptions) => VectorDependencies;
