import { type Kysely } from "kysely";
import type { VetraAccessCodesDB } from "./db/schema.js";
import type { SecretsService } from "../vetra-cloud-secrets/services/secrets-service.js";
import type { OpenBaoTransitClient } from "../vetra-cloud-secrets/openbao-transit.js";
/**
 * OpenBao transit pseudo-tenant under which attached invite-code keys are
 * encrypted at rest. Distinct from any real tenant id, so the code keys get
 * their own transit key (`vetra-tenant-access-codes`).
 */
export declare const ACCESS_CODES_TRANSIT_TENANT = "access-codes";
export type ApplyInviteCodeSecretResult = {
    injected: boolean;
    secretNames: string[];
};
export interface ResolverDeps {
    /** Encrypts/decrypts attached keys at rest under the access-codes pseudo-tenant. */
    transit: OpenBaoTransitClient;
    /** Writes per-tenant secrets (the vetra-cloud-secrets service, in-process). */
    secretsService: SecretsService;
}
export declare function createResolvers(db: Kysely<VetraAccessCodesDB>, deps: ResolverDeps): Record<string, any>;
//# sourceMappingURL=resolvers.d.ts.map