import { DataAdapters } from "@authhero/adapter-interfaces";
/**
 * Management API scopes for the AuthHero Management API
 */
export declare const MANAGEMENT_API_SCOPES: {
    description: string;
    value: string;
}[];
export interface SeedOptions {
    /**
     * The admin user's username
     */
    adminUsername: string;
    /**
     * The admin user's email address (optional)
     */
    adminEmail?: string;
    /**
     * The admin user's password (will be hashed with bcrypt)
     */
    adminPassword: string;
    /**
     * The tenant ID to create (defaults to "control_plane")
     */
    tenantId?: string;
    /**
     * The tenant name (defaults to "Control Plane")
     */
    tenantName?: string;
    /**
     * The audience URL for the tenant.
     * For the main/management tenant, defaults to `urn:authhero:management`.
     */
    audience?: string;
    /**
     * Whether this is the control plane tenant (the main management tenant).
     * If true, the audience will default to `urn:authhero:management`.
     * @default true
     */
    isControlPlane?: boolean;
    /**
     * The default client ID (defaults to "default")
     */
    clientId?: string;
    /**
     * Callback URLs for the default client
     */
    callbacks?: string[];
    /**
     * Allowed logout URLs for the default client
     */
    allowedLogoutUrls?: string[];
    /**
     * Whether to log progress (defaults to true)
     */
    debug?: boolean;
    /**
     * The issuer URL (used to construct the Management API identifier)
     */
    issuer?: string;
}
export interface SeedResult {
    tenantId: string;
    userId: string;
    username: string;
    clientId: string;
    clientSecret: string;
}
/**
 * Seed the AuthHero database with initial data.
 * Creates a default tenant, admin user, password connection, and default client.
 *
 * @example
 * ```ts
 * import { seed } from "authhero";
 * import createAdapters from "@authhero/kysely-adapter";
 *
 * const adapters = createAdapters(db);
 *
 * await seed(adapters, {
 *   adminUsername: "admin",
 *   adminPassword: "admin",
 * });
 * ```
 */
export declare function seed(adapters: DataAdapters, options: SeedOptions): Promise<SeedResult>;
