import { Result } from "@webiny/feature/api"; import type { ApiKey, ListApiKeysInput } from "./types.js"; import { type ApiKeyNotFoundError, ApiKeyPersistenceError, ApiKeyValidationError } from "./errors.js"; export interface IApiKeysRepositoryErrors { base: ApiKeyNotFoundError | ApiKeyPersistenceError | ApiKeyValidationError; } type RepositoryError = IApiKeysRepositoryErrors[keyof IApiKeysRepositoryErrors]; export interface IApiKeysRepository { get(id: string): Promise>; getByToken(token: string): Promise>; getBySlug(token: string): Promise>; list(params: ListApiKeysInput): Promise>; create(data: ApiKey): Promise>; update(data: ApiKey): Promise>; delete(apiKey: ApiKey): Promise>; } /** Persist and retrieve API keys. */ export declare const ApiKeysRepository: import("@webiny/di").Abstraction; export declare namespace ApiKeysRepository { type Interface = IApiKeysRepository; type Error = RepositoryError; } export type CodeApiKey = Pick & { token: `wat_${string}`; }; export interface IApiKeyFactory { execute(): Promise; } /** Provide code-defined API keys. */ export declare const ApiKeyFactory: import("@webiny/di").Abstraction; export declare namespace ApiKeyFactory { type Interface = IApiKeyFactory; type Return = Promise; type ApiKey = CodeApiKey; } export interface IApiKeyProvider { getByToken(token: string): Promise; getBySlug(slug: string): Promise; } /** Retrieve API keys by token or slug. */ export declare const ApiKeyProvider: import("@webiny/di").Abstraction; export declare namespace ApiKeyProvider { type Interface = IApiKeyProvider; } export {};