import { UtilsV1 as UtilsV1Pb } from '@superblocksteam/types';
import { ApplicationConfiguration, ApplicationSettings } from '../types/application/index.js';
import { AnyPageDSL } from '../types/index.js';
import { ApplicationSettingsHashes, ApplicationSignatureTree, ApplicationSignatureTreeUpdate, ApplicationSignatureTreeV2 } from './constants.js';
export * from './constants.js';
/**
 * Returns the SHA-256 hash of the given value, encoded as a base64 string. The hash is stable, meaning that the same
 * object will always produce the same hash.
 * @param value The value to hash. Must be JSON-serializable.
 * @returns The SHA-256 hash of the given value, encoded as a base64 string.
 */
export declare function sha256Object(value: unknown): Promise<string>;
export declare function hashApplicationSettings(settings: ApplicationSettings): Promise<ApplicationSettingsHashes>;
export declare function createApplicationSignatureTree({ pages, configuration, appSettings }: {
    pages: Record<string, AnyPageDSL>;
    configuration: Record<string, unknown> | ApplicationConfiguration | undefined;
    appSettings: ApplicationSettings;
}): Promise<ApplicationSignatureTree>;
/**
 * Upgrades an application signature tree from v1 to v2. The application must have a single page.
 */
export declare function upgradeApplicationSignatureTree({ currentHashTree, pageIds, configuration }: {
    currentHashTree: ApplicationSignatureTree;
    pageIds: string[];
    configuration: ApplicationConfiguration;
}): Promise<ApplicationSignatureTreeV2>;
/**
 * Verifies the hashes of the different parts of an application against the given hash tree. If a subset of the parts is
 * provided, only those parts will be verified.
 */
export declare function verifyApplicationHashTree({ hashTree, pages, configuration, appSettings }: {
    hashTree: ApplicationSignatureTree;
    pages?: Record<string, AnyPageDSL>;
    configuration?: ApplicationConfiguration;
    appSettings?: ApplicationSettings;
}): Promise<boolean>;
export declare function updateApplicationHashTree({ currentTree, updates }: {
    currentTree: ApplicationSignatureTree;
    updates: ApplicationSignatureTreeUpdate[];
}): Promise<ApplicationSignatureTree>;
export declare function getAlgorithmName(algorithm: UtilsV1Pb.Signature_Algorithm): string;
//# sourceMappingURL=index.d.ts.map