import { ApiKeyExpirationOptions } from './api-key-expiration';
import { ApiKeyLocalization } from './api-key-localization';
export type ApiKeyPluginOptions = {
    /**
     * Override the plugin's default localization strings.
     * @remarks `ApiKeyLocalization`
     */
    localization?: Partial<ApiKeyLocalization>;
    /**
     * Enable organization-owned API keys.
     *
     * When `true`, the plugin contributes an organization-scoped API keys card
     * to `<OrganizationSettings />`, and list/create/delete operations made on
     * behalf of an organization send `configId: "organization"`.
     *
     * Requires a matching server-side `apiKey` config entry with
     * `configId: "organization"` and `references: "organization"`:
     *
     * ```ts
     * apiKey([
     *   { configId: "default", references: "user" },
     *   { configId: "organization", references: "organization" }
     * ])
     * ```
     *
     * @default false
     */
    organization?: boolean;
    /**
     * Configure the expiration choices shown when a user creates an API key.
     *
     * Set this to `false` to hide the expiration field and preserve the Better
     * Auth server default. Intervals are configured in days and sent to Better
     * Auth as seconds.
     *
     * @default { intervals: [30, 90], defaultInterval: 30, allowNever: true }
     */
    keyExpiration?: ApiKeyExpirationOptions | false;
    /** API key configurations users can choose from. */
    configurations?: ApiKeyConfiguration[];
    /** Number of keys shown per page. @default 10 */
    pageSize?: number;
};
export type ApiKeyConfiguration = {
    id: string;
    label: string;
    description?: string;
    organization?: boolean;
};
export declare const apiKeyPlugin: ((options?: ApiKeyPluginOptions | undefined) => {
    localization: {
        apiKey: string;
        apiKeys: string;
        apiKeysDescription: string;
        createApiKey: string;
        noApiKeys: string;
        name: string;
        expiration: string;
        day: string;
        days: string;
        never: string;
        created: string;
        expires: string;
        neverExpires: string;
        newApiKey: string;
        newApiKeyWarning: string;
        deleteApiKey: string;
        deleteApiKeyWarning: string;
        dismissNewKey: string;
        editApiKey: string;
        configuration: string;
        enabled: string;
        disabled: string;
        requests: string;
        remaining: string;
        lastRequest: string;
        neverRequested: string;
        sortBy: string;
        newest: string;
        oldest: string;
        nameAscending: string;
        nameDescending: string;
        previousPage: string;
        nextPage: string;
    };
    organization: boolean;
    keyExpiration: false | import('./api-key-expiration').ResolvedApiKeyExpirationOptions;
    configurations: ApiKeyConfiguration[];
    pageSize: number;
} & {
    id: "apiKey";
}) & {
    id: "apiKey";
};
