import { EncoderDecoder } from '@iotize/common/converter/api/public_api';
import { AbstractEditableDataStream, KeyTypeType } from '../utility/editable-data-stream';
import { VariableView } from './byte-index-variable-view';
export declare abstract class AbstractVariable<DataType, KeyType extends KeyTypeType = KeyTypeType> extends AbstractEditableDataStream<DataType, Uint8Array, KeyType> {
    /**
     * Create a subvariable instance from the given variable index
     * @param key the uniq variable identifier to use for data manager
     * @param rawIndexes list of array index (starting from 0) to extract. Each index represents 1 byte of data
     *
     * @deprecated manually create your instance
     */
    variableView<T, K extends KeyTypeType>(key: K, rawIndexes: number[], options?: {
        converter?: EncoderDecoder<T, Uint8Array>;
        useLastKnownValueBeforeWrite?: boolean;
    }): VariableView<T, K>;
}
