import { type Item, type Client as OnePasswordClient } from '@1password/sdk';
import { type SelectFrom } from '@augment-vir/common';
import { BaseSecretsAdapter, type ProcessedSecretDefinitions, type RawSecrets } from 'updating-secrets';
/**
 * The necessary subset of the 1Password `Client` API that {@link OnePasswordAdapter} requires.
 *
 * @category Internal
 */
export type NeededOnePasswordClient = SelectFrom<OnePasswordClient, {
    items: {
        get: true;
    };
}>;
/**
 * Loads secrets from 1Password. A 1Password `Client` must be created and authorized before passing
 * it into here.
 *
 * @category Adapters
 */
export declare class OnePasswordAdapter extends BaseSecretsAdapter {
    protected readonly onePasswordClient: Readonly<NeededOnePasswordClient>;
    constructor(onePasswordClient: Readonly<NeededOnePasswordClient>);
    /** Load secrets from the provided 1Password `Client`. */
    loadSecrets(secrets: ProcessedSecretDefinitions): RawSecrets;
}
/**
 * Required 1Password `Item` for proper processing.
 *
 * @category Internal
 */
export type NeededOnePasswordItem = SelectFrom<Item, {
    fields: {
        title: true;
        value: true;
    };
}>;
/**
 * Extract the needed parameters for fetching an item from 1Password from an item URL.
 *
 * You can find the item URL by navigating to an item in 1Password, expanding the three dots menu,
 * and clicking "Copy Private Link".
 *
 * @category Internal
 */
export declare function extract1PasswordIds(url: string): {
    itemId: string;
    vaultId: string;
};
