/**
 * Encrypted session key for E2E encryption
 */
export interface EncryptedSessionKey {
    deviceId: string;
    encryptedKey: string;
    ephemeralPublicKey: string;
}
/**
 * Device key stored with backend
 */
export interface DeviceKey {
    userId: string;
    deviceId: string;
    publicKey: string;
    platform: string;
    deviceName?: string;
    createdAt: string;
    lastUsedAt?: string;
}
/**
 * Key pair for ECDH
 */
export interface KeyPair {
    privateKey: string;
    publicKey: string;
}
/**
 * Device identity stored in keychain
 */
export interface DeviceIdentity {
    deviceId: string;
    privateKey: string;
    publicKey: string;
    createdAt: string;
}
/**
 * GraphQL input for registering device key
 */
export interface RegisterDeviceKeyInput {
    deviceId: string;
    publicKey: string;
    platform: string;
    deviceName?: string;
}
/**
 * GraphQL input for granting session key
 */
export interface GrantSessionKeyInput {
    sessionId: string;
    deviceId: string;
    encryptedKey: string;
    ephemeralPublicKey: string;
}
