import type { AuthenticationProgramStateControlStack, AuthenticationProgramStateError, AuthenticationProgramStateStack, InstructionSetOperationMapping, Operation } from '../../../lib.js'; export declare const incrementOperationCount: (operation: Operation) => Operation; export declare const conditionallyEvaluate: (operation: Operation) => Operation; /** * Map a function over each operation in an {@link InstructionSet.operations} * object, assigning the result to the same `opcode` in the resulting object. * @param operationMap - an operations map from an {@link InstructionSet} * @param combinators - a list of functions to apply (in order) to * each operation */ export declare const mapOverOperations: (combinators: ((operation: Operation) => Operation)[], operationMap: InstructionSetOperationMapping) => InstructionSetOperationMapping; /** * Pop one stack item off of `state.stack` and provide that item to `operation`. */ export declare const useOneStackItem: (state: State, operation: (nextState: State, [value]: [Uint8Array]) => State) => State; export declare const useTwoStackItems: (state: State, operation: (nextState: State, [valueTop, valueTwo]: [Uint8Array, Uint8Array]) => State) => State; export declare const useThreeStackItems: (state: State, operation: (nextState: State, [valueTop, valueTwo, valueThree]: [Uint8Array, Uint8Array, Uint8Array]) => State) => State; export declare const useFourStackItems: (state: State, operation: (nextState: State, [valueTop, valueTwo, valueThree, valueFour]: [ Uint8Array, Uint8Array, Uint8Array, Uint8Array ]) => State) => State; export declare const useSixStackItems: (state: State, operation: (nextState: State, [valueTop, valueTwo, valueThree, valueFour, valueFive, valueSix]: [ Uint8Array, Uint8Array, Uint8Array, Uint8Array, Uint8Array, Uint8Array ]) => State) => State; export declare const useOneVmNumber: (state: State, operation: (nextState: State, [value]: [bigint]) => State, { maximumVmNumberByteLength, requireMinimalEncoding, }?: { maximumVmNumberByteLength?: number | undefined; requireMinimalEncoding?: boolean | undefined; }) => State; export declare const useTwoVmNumbers: (state: State, operation: (nextState: State, [firstValue, secondValue]: [bigint, bigint]) => State, { maximumVmNumberByteLength, requireMinimalEncoding, }?: { maximumVmNumberByteLength?: number | undefined; requireMinimalEncoding?: boolean | undefined; }) => State; export declare const useThreeVmNumbers: (state: State, operation: (nextState: State, [firstValue, secondValue, thirdValue]: [bigint, bigint, bigint]) => State, { maximumVmNumberByteLength, requireMinimalEncoding, }?: { maximumVmNumberByteLength?: number | undefined; requireMinimalEncoding?: boolean | undefined; }) => State; /** * Return the provided state with the provided value pushed to its stack. * @param state - the state to update and return * @param data - the value to push to the stack */ export declare const pushToStack: (state: State, ...data: Uint8Array[]) => State; /** * If the provided item exceeds the maximum stack item length, apply an error. * Otherwise, return the provided state with the item pushed to its stack. * @param state - the state to update and return * @param item - the value to push to the stack */ export declare const pushToStackChecked: (state: State, item: Uint8Array, maximumLength?: number) => State; /** * Return the provided state with the VM number pushed to its stack. * @param state - the state to update and return * @param vmNumber - the number to push to the stack */ export declare const pushToStackVmNumber: (state: State, vmNumber: bigint) => State; /** * If the provided number is outside the VM number range, apply an error. * Otherwise, return the provided state with the VM number pushed to its stack. * @param state - the state to update and return * @param vmNumber - the VM number to push to the stack */ export declare const pushToStackVmNumberChecked: (state: State, vmNumber: bigint, { minVmNumber, maxVmNumber, }?: { minVmNumber?: bigint | undefined; maxVmNumber?: bigint | undefined; }) => State; export declare const combineOperations: (firstOperation: Operation, secondOperation: Operation) => (state: State) => State; //# sourceMappingURL=combinators.d.ts.map