import '@quinck/collections';
import { UserService } from '../models/components/user-service';
import { UserToken } from '../models/utils/auth';
import { Credentials, UserInfo } from '../models/utils/user';
import { BasicCognitoService, CognitoServiceConfig } from './basic-cognito-service';
export type CognitoUserServiceConfig = {
    clientId: string;
};
export declare class CognitoUserService<SignUpInfo extends Partial<UserInfoAttributes>, UserUpdateInfo extends Partial<UserInfoAttributes>, UserInfoAttributes extends Record<string, unknown>> extends BasicCognitoService<SignUpInfo, UserUpdateInfo, UserInfoAttributes> implements UserService<SignUpInfo, UserUpdateInfo, UserInfoAttributes> {
    private readonly clientId;
    constructor(config: CognitoServiceConfig<SignUpInfo, UserUpdateInfo, UserInfoAttributes> & CognitoUserServiceConfig);
    signUp(credentials: Credentials, user: SignUpInfo): Promise<void>;
    confirmSignUp(username: string, code: string): Promise<void>;
    resendConfirmationCode(username: string): Promise<void>;
    getUserInfo(token: UserToken): Promise<UserInfo<UserInfoAttributes>>;
    updateUserInfo(token: UserToken, user: UserUpdateInfo): Promise<void>;
    deleteUser(token: UserToken): Promise<void>;
}
