import { SecretEntry, SecretKey, SecretValue, SetSecretRequestEntry } from './public-types';
/**
 * SecretClient provides methods for managing secrets, including retrieval,
 * update, and deletion of stored secrets and API keys.
 * @category Secret
 */
export declare class SecretClient {
    private readonly rpcManager;
    /**
     * Provides access to API key secret management operations.
     *
     * @returns An instance of {@link ApiKeysSecretClient} for managing API keys.
     */
    get apiKeys(): ApiKeysSecretClient;
    /**
     * Retrieves a stored custom secret by its key.
     *
     * @param key The key of the secret to retrieve.
     * @returns A promise resolving to the secret entry if found, or `undefined` if not found.
     */
    get(key: SecretKey): Promise<SecretEntry | undefined>;
    /**
     * Retrieves all stored custom secrets.
     *
     * @returns A promise resolving to a record of secret entries keyed by their secret keys.
     */
    getAll(): Promise<Record<SecretKey, SecretEntry>>;
    /**
     * Creates or updates a single secret entry.
     *
     * @param key The secret key to upsert.
     * @param value The value associated with the secret.
     * @returns A promise resolving to the created or updated secret entry.
     */
    upsert(key: SecretKey, value: SecretValue): Promise<SecretEntry>;
    /**
     * Creates or updates multiple secret entries at once.
     *
     * @param entries An array of secret entries to set, each containing a key and value.
     * @returns A promise resolving to an array of created or updated secret entries.
     */
    upsertMany(entries: Array<SetSecretRequestEntry>): Promise<Array<SecretEntry>>;
    /**
     * Deletes a specified secret key.
     * If the secret is missing, it will be ignored, and the operation will proceed without failure.
     *
     * @param key - The secret key to delete.
     * @param force - If set to true, forces deletion regardless of the secret's usage status across any enabled
     *   integrations. Default is false.
     * @returns A promise that resolves when the deletion request is complete.
     */
    delete(key: SecretKey, force?: boolean): Promise<void>;
    /**
     * Deletes a list of specified secret keys.
     * If any secret in the list is missing, it will be ignored, and the operation will proceed without failure.
     *
     * @param keys - An array of secret keys to delete.
     * @param force - If set to true, forces deletion regardless of the secret's usage status across any enabled
     *   integrations. Default is false.
     * @returns A promise that resolves when the deletion request is complete.
     */
    deleteMany(keys: Array<SecretKey>, force?: boolean): Promise<void>;
}
/**
 * ApiKeysSecretClient manages API key secrets, providing methods
 * for retrieval, creation, and deletion of API keys.
 * @category Secret
 */
export declare class ApiKeysSecretClient {
    private readonly rpcManager;
    /**
     * Retrieves a stored API key by its key.
     *
     * @param key The API key to retrieve.
     * @returns A promise resolving to the secret entry or undefined if not found.
     */
    get(key: SecretKey): Promise<SecretEntry | undefined>;
    /**
     * Retrieves all secrets.
     *
     * @returns A promise resolving to a record of all stored secret entries.
     */
    getAll(): Promise<Record<SecretKey, SecretEntry>>;
    /**
     * Inserts a new API key or updates an existing one with a new autogenerated value.
     * Returns the created secret.
     */
    upsert(key: SecretKey): Promise<SecretEntry>;
    /**
     * Deletes a specified API key.
     *
     * @param key The key of the API key to delete.
     * @returns A promise resolving once deletion is complete.
     */
    delete(key: SecretKey): Promise<void>;
}
