import { Fr } from '@aztec/foundation/curves/bn254';
import { FunctionSelector } from '@aztec/stdlib/abi';
import { AztecAddress } from '@aztec/stdlib/aztec-address';
import type { NoirCompiledContract } from '@aztec/stdlib/noir';
/** Root of the noir-contracts package relative to `yarn-project/standard-contracts`. */
export declare const NOIR_CONTRACTS_ROOT = "../../noir-projects/noir-contracts";
/** Directory holding the freshly-compiled Noir artifacts the generator reads from. */
export declare const NOIR_ARTIFACTS_SRC_PATH: string;
/** Output directory inside this package where the trimmed artifacts get copied. */
export declare const STANDARD_ARTIFACTS_DEST_DIR = "./artifacts";
/** Path of the generated TS data file (addresses, class IDs, etc.). */
export declare const STANDARD_CONTRACT_DATA_OUTPUT_PATH = "./src/standard_contract_data.ts";
export declare const NOIR_STANDARD_ADDRESSES_PATHS: string[];
/** The deployment salt baked into every standard contract instance. */
export declare const STANDARD_CONTRACT_SALT: Fr;
/** Every standard contract is deployed by the zero address (universal deploy). */
export declare const STANDARD_CONTRACT_DEPLOYER: AztecAddress;
/**
 * Single source of truth for which contracts are "standard" (non-protocol, but with deterministic
 * addresses baked into circuits via `standard_addresses.nr`).
 *
 * - `name`: TS-side name used as the key in the generated `StandardContractAddress` map.
 * - `src`: artifact filename (without `.json`) inside `noir-contracts/target/`.
 * - `nrConst`: Noir-side constant to emit in `standard_addresses.nr`, or `null` to skip the Noir
 *    stamp (used for account-side entrypoints with no Noir consumer).
 *
 * Adding a new standard contract is a one-row change here. The drift-detection check in the
 * generator and the backup jest test both iterate this list, so coverage is automatic.
 */
export declare const standardContracts: {
    name: string;
    src: string;
    nrConst: string | null;
}[];
/** Everything derived from a compiled standard-contract artifact that the generator emits. */
export type ContractData = {
    address: AztecAddress;
    classId: Fr;
    artifactHash: Fr;
    privateFunctionsRoot: Fr;
    publicBytecodeCommitment: Fr;
    initializationHash: Fr;
    privateFunctions: {
        selector: FunctionSelector;
        vkHash: Fr;
    }[];
};
/**
 * Loads a compiled Noir contract artifact from `noir-contracts/target/` by its source name.
 * Throws with `ENOENT` if the artifact isn't built yet — callers may catch this to provide a
 * friendlier "run the build first" message.
 */
export declare function loadArtifact(srcName: string): Promise<NoirCompiledContract>;
/**
 * Derives the address, class ID, and other deployment data for a standard contract from its
 * compiled artifact. Used by both the generator (to write `standard_contract_data.ts`) and the
 * drift test (to verify the committed data matches).
 *
 * Standard contracts come from a trusted source (the build pipeline), so no class verifications
 * are performed.
 */
export declare function computeContractData(artifact: NoirCompiledContract): Promise<ContractData>;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RfZGF0YS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnRyYWN0X2RhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBWUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxnQkFBZ0IsRUFBd0IsTUFBTSxtQkFBbUIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFPM0QsT0FBTyxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUsvRCx3RkFBd0Y7QUFDeEYsZUFBTyxNQUFNLG1CQUFtQix1Q0FBdUMsQ0FBQztBQUN4RSxzRkFBc0Y7QUFDdEYsZUFBTyxNQUFNLHVCQUF1QixRQUE2QyxDQUFDO0FBQ2xGLG1GQUFtRjtBQUNuRixlQUFPLE1BQU0sMkJBQTJCLGdCQUFnQixDQUFDO0FBQ3pELHVFQUF1RTtBQUN2RSxlQUFPLE1BQU0sa0NBQWtDLG9DQUFvQyxDQUFDO0FBSXBGLGVBQU8sTUFBTSw2QkFBNkIsVUFBbUUsQ0FBQztBQUU5Ryx1RUFBdUU7QUFDdkUsZUFBTyxNQUFNLHNCQUFzQixJQUFZLENBQUM7QUFDaEQsa0ZBQWtGO0FBQ2xGLGVBQU8sTUFBTSwwQkFBMEIsY0FBc0IsQ0FBQztBQUU5RDs7Ozs7Ozs7Ozs7R0FXRztBQUNILGVBQU8sTUFBTSxpQkFBaUIsRUFBRTtJQUFFLElBQUksRUFBRSxNQUFNLENBQUM7SUFBQyxHQUFHLEVBQUUsTUFBTSxDQUFDO0lBQUMsT0FBTyxFQUFFLE1BQU0sR0FBRyxJQUFJLENBQUE7Q0FBRSxFQWFwRixDQUFDO0FBRUYsOEZBQThGO0FBQzlGLE1BQU0sTUFBTSxZQUFZLEdBQUc7SUFDekIsT0FBTyxFQUFFLFlBQVksQ0FBQztJQUN0QixPQUFPLEVBQUUsRUFBRSxDQUFDO0lBQ1osWUFBWSxFQUFFLEVBQUUsQ0FBQztJQUNqQixvQkFBb0IsRUFBRSxFQUFFLENBQUM7SUFDekIsd0JBQXdCLEVBQUUsRUFBRSxDQUFDO0lBQzdCLGtCQUFrQixFQUFFLEVBQUUsQ0FBQztJQUN2QixnQkFBZ0IsRUFBRTtRQUFFLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQztRQUFDLE1BQU0sRUFBRSxFQUFFLENBQUE7S0FBRSxFQUFFLENBQUM7Q0FDaEUsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCx3QkFBc0IsWUFBWSxDQUFDLE9BQU8sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBR2pGO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILHdCQUFzQixtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsb0JBQW9CLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQXlCL0YifQ==