import { Field, PublicKey, SmartContract, State, UInt32 } from 'o1js';
declare const CommitValue_base: (new (value: {
    value: import("o1js/dist/node/lib/provable/field.js").Field;
    salt: import("o1js/dist/node/lib/provable/field.js").Field;
}) => {
    value: import("o1js/dist/node/lib/provable/field.js").Field;
    salt: import("o1js/dist/node/lib/provable/field.js").Field;
}) & {
    _isStruct: true;
} & Omit<import("o1js/dist/node/lib/provable/types/provable-intf.js").Provable<{
    value: import("o1js/dist/node/lib/provable/field.js").Field;
    salt: import("o1js/dist/node/lib/provable/field.js").Field;
}, {
    value: bigint;
    salt: bigint;
}>, "fromFields"> & {
    fromFields: (fields: import("o1js/dist/node/lib/provable/field.js").Field[]) => {
        value: import("o1js/dist/node/lib/provable/field.js").Field;
        salt: import("o1js/dist/node/lib/provable/field.js").Field;
    };
} & {
    fromValue: (value: {
        value: string | number | bigint | import("o1js/dist/node/lib/provable/field.js").Field;
        salt: string | number | bigint | import("o1js/dist/node/lib/provable/field.js").Field;
    }) => {
        value: import("o1js/dist/node/lib/provable/field.js").Field;
        salt: import("o1js/dist/node/lib/provable/field.js").Field;
    };
    toInput: (x: {
        value: import("o1js/dist/node/lib/provable/field.js").Field;
        salt: import("o1js/dist/node/lib/provable/field.js").Field;
    }) => {
        fields?: Field[] | undefined;
        packed?: [Field, number][] | undefined;
    };
    toJSON: (x: {
        value: import("o1js/dist/node/lib/provable/field.js").Field;
        salt: import("o1js/dist/node/lib/provable/field.js").Field;
    }) => {
        value: string;
        salt: string;
    };
    fromJSON: (x: {
        value: string;
        salt: string;
    }) => {
        value: import("o1js/dist/node/lib/provable/field.js").Field;
        salt: import("o1js/dist/node/lib/provable/field.js").Field;
    };
    empty: () => {
        value: import("o1js/dist/node/lib/provable/field.js").Field;
        salt: import("o1js/dist/node/lib/provable/field.js").Field;
    };
};
export declare class CommitValue extends CommitValue_base {
    hash(): Field;
}
export declare class RandomManager extends SmartContract {
    startSlot: State<UInt32>;
    firstCommit: State<import("o1js/dist/node/lib/provable/field.js").Field>;
    secondCommit: State<import("o1js/dist/node/lib/provable/field.js").Field>;
    firstValue: State<import("o1js/dist/node/lib/provable/field.js").Field>;
    secondValue: State<import("o1js/dist/node/lib/provable/field.js").Field>;
    result: State<import("o1js/dist/node/lib/provable/field.js").Field>;
    firstPartyCommit(value: CommitValue): Promise<void>;
    secondPartyCommit(value: CommitValue): Promise<void>;
    revealFirstCommit(value: CommitValue): Promise<void>;
    revealSecondCommit(value: CommitValue): Promise<void>;
    produceResultIfAllRevealed(firstValue: Field, secondValue: Field): void;
    checkPermission(targetAddress: PublicKey): void;
    checkRoundPass(): void;
}
export default RandomManager;
