/**
 * Zod schemas for persisted record types.
 *
 * These schemas serve as the single source of truth for types that are
 * stored in the settings-store backend and retrieved via tRPC. They
 * replace the manual TypeScript interfaces with schema-derived types,
 * enabling runtime validation when reading from the backend.
 *
 * Convention: each schema is named `<Type>Schema`, the inferred TS type
 * keeps the original name for backward compatibility.
 */
import { z } from 'zod';
export declare const UserRoleSchema: z.ZodEnum<{
    admin: "admin";
    viewer: "viewer";
    super_admin: "super_admin";
    agent: "agent";
}>;
export type UserRole = z.infer<typeof UserRoleSchema>;
export declare const UserRecordSchema: z.ZodObject<{
    id: z.ZodString;
    username: z.ZodString;
    passwordHash: z.ZodString;
    role: z.ZodEnum<{
        admin: "admin";
        viewer: "viewer";
        super_admin: "super_admin";
        agent: "agent";
    }>;
    allowedProviders: z.ZodUnion<readonly [z.ZodLiteral<"*">, z.ZodArray<z.ZodString>]>;
    allowedDevices: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodLiteral<"*">, z.ZodArray<z.ZodString>]>>;
    createdAt: z.ZodNumber;
    updatedAt: z.ZodNumber;
}, z.core.$strip>;
export type UserRecord = z.infer<typeof UserRecordSchema>;
export declare const ApiKeyRecordSchema: z.ZodObject<{
    id: z.ZodString;
    label: z.ZodString;
    role: z.ZodEnum<{
        admin: "admin";
        viewer: "viewer";
        super_admin: "super_admin";
        agent: "agent";
    }>;
    allowedProviders: z.ZodUnion<readonly [z.ZodLiteral<"*">, z.ZodArray<z.ZodString>]>;
    allowedDevices: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodLiteral<"*">, z.ZodArray<z.ZodString>]>>;
    tokenHash: z.ZodString;
    tokenPrefix: z.ZodString;
    createdAt: z.ZodNumber;
    lastUsedAt: z.ZodOptional<z.ZodNumber>;
}, z.core.$strip>;
export type ApiKeyRecord = z.infer<typeof ApiKeyRecordSchema>;
export declare const TokenScopeSchema: z.ZodObject<{
    type: z.ZodEnum<{
        addon: "addon";
        capability: "capability";
        "route-prefix": "route-prefix";
    }>;
    target: z.ZodString;
}, z.core.$strip>;
export type TokenScope = z.infer<typeof TokenScopeSchema>;
export declare const ScopedTokenSchema: z.ZodObject<{
    id: z.ZodString;
    userId: z.ZodString;
    name: z.ZodString;
    tokenHash: z.ZodString;
    tokenPrefix: z.ZodString;
    scopes: z.ZodArray<z.ZodObject<{
        type: z.ZodEnum<{
            addon: "addon";
            capability: "capability";
            "route-prefix": "route-prefix";
        }>;
        target: z.ZodString;
    }, z.core.$strip>>;
    expiresAt: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    lastUsedAt: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    createdAt: z.ZodNumber;
}, z.core.$strip>;
export type ScopedToken = z.infer<typeof ScopedTokenSchema>;
//# sourceMappingURL=auth-records.d.ts.map