export type TrustTierId = 'nimi-first-party' | 'nimi-verified-partner' | 'nimi-community';
export declare const CANONICAL_TRUST_TIERS: readonly TrustTierId[];
export declare function isCanonicalTrustTier(value: unknown): value is TrustTierId;
export type AppKind = 'nimi-app';
export declare const CANONICAL_APP_KINDS: readonly AppKind[];
export declare function isCanonicalAppKind(value: unknown): value is AppKind;
export type NimiAppOrdinaryVisibility = 'ordinary-visible' | 'hidden-internal' | 'developer-only' | 'not-admitted-visible';
export declare const CANONICAL_ORDINARY_VISIBILITY: readonly NimiAppOrdinaryVisibility[];
export declare function isCanonicalOrdinaryVisibility(value: unknown): value is NimiAppOrdinaryVisibility;
export type AppLaunchReadiness = 'ready' | 'install-required' | 'update-required' | 'repair-required' | 'permission-required' | 'blocked-by-master-gate' | 'unsupported';
export declare const CANONICAL_LAUNCH_READINESS: readonly AppLaunchReadiness[];
export declare function isCanonicalLaunchReadiness(value: unknown): value is AppLaunchReadiness;
export interface NimiAppRow {
    readonly appId: string;
    readonly appKind: AppKind;
    readonly displayName: string;
    readonly trustTier: TrustTierId;
    readonly publisher: string;
    readonly releaseDescriptorRef: string;
    readonly installStoragePolicyRef: string;
    readonly sourceRule: string;
}
export interface NimiAppStatus {
    readonly appId: string;
    readonly launchReadiness: AppLaunchReadiness;
    readonly releaseDescriptorRef?: string;
    readonly installStoragePolicyRef?: string;
    readonly storageRoots?: NimiAppStorageRoots;
    readonly verificationState?: NimiAppInstallVerificationState;
    readonly installedVersion?: string;
    readonly availableVersion?: string;
    readonly detail?: string;
}
export type NimiAppReleaseDescriptorClass = 'bundled-with-nimi' | 'external-immutable-artifact';
export type NimiAppReleaseSourceKind = 'nimi-bundle' | 'github-release' | 'github-commit' | 'npm-package';
export interface NimiAppReleaseDescriptorRow {
    readonly descriptorId: string;
    readonly appId: string;
    readonly version: string;
    readonly descriptorClass: NimiAppReleaseDescriptorClass;
    readonly sourceKind: NimiAppReleaseSourceKind;
    readonly sourceRef: string;
    readonly artifactLocator: string;
    readonly digestAlgorithm: 'sha256';
    readonly sha256: string;
    readonly size: string;
    readonly provenanceRef: string;
    readonly packageKind: AppKind;
    readonly entryRef: string;
    readonly sandboxRef: string;
    readonly permissionsRef: string;
    readonly storagePolicyRef: string;
    readonly admissionPath: string;
    readonly mutableSourceAllowed: boolean;
    readonly installDigestVerificationRequired: string;
    readonly sourceRule: string;
}
export type NimiAppInstallVerificationState = 'not-installed' | 'digest-verified' | 'digest-mismatch' | 'blocked' | 'unsupported';
export interface NimiAppInstallEvidenceRow {
    readonly appId: string;
    readonly releaseDescriptorRef: string;
    readonly storagePolicyRef: string;
    readonly installedVersion?: string;
    readonly sha256?: string;
    readonly verificationState: NimiAppInstallVerificationState;
    readonly storageRoots?: NimiAppStorageRoots;
    readonly detail?: string;
}
export interface NimiAppStorageRoots {
    readonly releaseRoot: string;
    readonly dataRoot: string;
    readonly cacheRoot: string;
    readonly tempRoot: string;
}
//# sourceMappingURL=types.d.ts.map