/**
 * this contains just the Keccac permutation function
 *
 * TODO: export this from o1js
 *
 * the code in this file was copied and modified from o1js
 * https://github.com/o1-labs/o1js
 */
import { Field } from 'o1js';
export { Keccak, KeccakState };
declare function permutation(state: Field[][]): Field[][];
/**
 * The internal state of the Keccak hash function is\
 * a 5x5 matrix of 64-bit words.
 */
type KeccakState = Field[][];
declare const KeccakState: {
    /**
     * Create a state of all zeros
     */
    zeros(): KeccakState;
    /**
     * Flatten state to words
     */
    toWords(state: KeccakState): Field[];
    /**
     * Compose words to state
     */
    fromWords(words: Field[]): KeccakState;
    /**
     * XOR two states together and return the result
     */
    xor(a: KeccakState, b: KeccakState): KeccakState;
    provable: import("node_modules/o1js/dist/node/bindings/lib/generic.js").GenericProvableExtendedPure<import("node_modules/o1js/dist/node/lib/provable/field.js").Field[][], bigint[][], string[][], import("node_modules/o1js/dist/node/lib/provable/field.js").Field>;
};
declare const Keccak: {
    permutation: typeof permutation;
    State: {
        /**
         * Create a state of all zeros
         */
        zeros(): KeccakState;
        /**
         * Flatten state to words
         */
        toWords(state: KeccakState): Field[];
        /**
         * Compose words to state
         */
        fromWords(words: Field[]): KeccakState;
        /**
         * XOR two states together and return the result
         */
        xor(a: KeccakState, b: KeccakState): KeccakState;
        provable: import("node_modules/o1js/dist/node/bindings/lib/generic.js").GenericProvableExtendedPure<import("node_modules/o1js/dist/node/lib/provable/field.js").Field[][], bigint[][], string[][], import("node_modules/o1js/dist/node/lib/provable/field.js").Field>;
    };
};
