import type { Logger } from '@sap-ux/logger';
import { BackendSystem } from '@sap-ux/store';
import type { UrlAbapTarget } from '../types';
export type BasicAuth = Required<Pick<BackendSystem, 'username' | 'password'>>;
export type ServiceAuth = Required<Pick<BackendSystem, 'serviceKeys' | 'name' | 'refreshToken'>>;
/**
 * Checks if credentials are of basic auth type.
 *
 * @param authOpts credential options
 * @returns boolean
 */
export declare function isBasicAuth(authOpts: BackendSystem | BasicAuth | undefined): authOpts is BasicAuth;
/**
 * Checks if credentials are of service auth type.
 *
 * @param authOpts credential options
 * @returns boolean
 */
export declare function isServiceAuth(authOpts: BackendSystem | ServiceAuth | undefined): authOpts is ServiceAuth;
/**
 * Check the secure storage if it has credentials for the given target.
 *
 * @param target ABAP target
 * @param logger - reference to the logger instance
 * @returns credentials from the store or undefined.
 */
export declare function getCredentialsFromStore(target: UrlAbapTarget, logger: Logger): Promise<BackendSystem | undefined>;
/**
 * Store the credentials in the secure storage.
 *
 * @param name system name
 * @param target target
 * @param target.url system url
 * @param target.client optional system client
 * @param credentials basic auth credentials
 * @param credentials.username username
 * @param credentials.password password
 * @param logger reference to the logger instance
 * @returns true if the credentials are successfully stored
 */
export declare function storeCredentials(name: string, target: {
    url: string;
    client?: string;
}, credentials: {
    username: string;
    password: string;
}, logger: Logger): Promise<boolean>;
/**
 * Checks the environment variables for Fiori tools settings.
 *
 * @returns basic auth credentials from the environment or undefined.
 */
export declare function getCredentialsFromEnvVariables(): BasicAuth | undefined;
/**
 * Prompt for username and password.
 *
 * @param username - optional username that is to be offered as default
 * @returns credentials object with username/password
 */
export declare function getCredentialsWithPrompts(username?: string): Promise<BasicAuth>;
//# sourceMappingURL=credentials.d.ts.map