import ChannelId from '../../ChannelId';
import * as BigNumber from 'bignumber.js';
import { PaymentChannel } from '../../PaymentChannel';
import EngineSqlite from './EngineSqlite';
import AbstractChannelsDatabase from '../AbstractChannelsDatabase';
export default class SqliteChannelsDatabase extends AbstractChannelsDatabase<EngineSqlite> {
    save(paymentChannel: PaymentChannel): Promise<void>;
    firstById(channelId: ChannelId | string): Promise<PaymentChannel | null>;
    spend(channelId: ChannelId | string, spent: BigNumber.BigNumber): Promise<void>;
    deposit(channelId: ChannelId | string, value: BigNumber.BigNumber): Promise<void>;
    all(): Promise<Array<PaymentChannel>>;
    allOpen(): Promise<Array<PaymentChannel>>;
    findUsable(sender: string, receiver: string, amount: BigNumber.BigNumber): Promise<PaymentChannel | null>;
    findBySenderReceiver(sender: string, receiver: string): Promise<Array<PaymentChannel>>;
    findBySenderReceiverChannelId(sender: string, receiver: string, channelId: ChannelId | string): Promise<PaymentChannel | null>;
    updateState(channelId: ChannelId | string, state: number): Promise<void>;
    updateSettlingUntil(channelId: ChannelId | string, settlingUntil: BigNumber.BigNumber): Promise<void>;
}
