import { Outcome } from './outcome';
import { State } from './state';
import { Address, Bytes, Bytes32, Uint48 } from './types';
export interface ChannelData {
    turnNumRecord: Uint48;
    finalizesAt: Uint48;
    state?: State;
    challengerAddress?: Address;
    outcome?: Outcome;
}
interface CompactChannelData {
    turnNumRecord: Uint48;
    finalizesAt: Uint48;
    stateHash: Bytes32;
    challengerAddress: Address;
    outcomeHash: Bytes32;
}
export interface ChannelDataLite {
    finalizesAt: Uint48;
    state: State;
    challengerAddress: Address;
    outcome: Outcome;
}
interface CompactChannelDataLite {
    finalizesAt: Uint48;
    stateHash: Bytes32;
    challengerAddress: Address;
    outcomeHash: Bytes32;
}
export declare function channelDataToChannelStorageHash(channelData: ChannelData): Bytes32;
export declare function parseChannelStorageHash(channelStorageHash: Bytes32): {
    turnNumRecord: number;
    finalizesAt: number;
    fingerprint: Bytes;
};
export declare function channelDataStruct({ finalizesAt, state, challengerAddress, turnNumRecord, outcome, }: ChannelData): CompactChannelData;
export declare function encodeChannelData(data: ChannelData): Bytes;
export declare function channelDataLiteStruct({ finalizesAt, challengerAddress, state, outcome, }: ChannelDataLite): CompactChannelDataLite;
export declare function encodeChannelStorageLite(channelDataLite: ChannelDataLite): Bytes;
export {};
//# sourceMappingURL=channel-storage.d.ts.map