/// <reference types="node" />
import Repository from './repository';
import Ref from './ref';
export default class BitObject {
    validateBeforePersist: boolean;
    id(): string | Buffer;
    toBuffer(pretty?: boolean): Buffer;
    refs(): Ref[];
    getHeader(buffer: Buffer): string;
    collectRefs(repo: Repository): Promise<Ref[]>;
    collectRaw(repo: Repository): Promise<Buffer[]>;
    asRaw(repo: Repository): Promise<Buffer>;
    collect(repo: Repository): BitObject[];
    hash(): Ref;
    compress(): Promise<Buffer>;
    serialize(): Buffer;
    static parseObject(fileContents: Buffer, types: {
        [key: string]: Function;
    }): Promise<BitObject>;
    static parseSync(fileContents: Buffer, types: {
        [key: string]: Function;
    }): BitObject;
    static makeHash(str: string | Buffer): string;
}
