export interface KakaoLoginToken {
    accessToken: string;
    refreshToken: string;
    tokenType?: string;
    idToken?: string;
    accessTokenExpiresAt: number;
    refreshTokenExpiresAt: number;
    accessTokenExpiresIn: number;
    refreshTokenExpiresIn: number;
    scopes: string[];
}
export interface KakaoScopeInfo {
    id: string;
    agreed: boolean;
    displayName: string;
    revocable?: boolean;
    using: boolean;
    delegated?: boolean;
    type: string;
}
export interface KakaoServiceTerms {
    tag: string;
    agreedAt?: number;
    agreed: boolean;
    required: boolean;
    revocable: boolean;
}
export interface KakaoAppServiceTerms {
    tag: string;
    createdAt: number;
    updatedAt: number;
}
export interface KakaoShippingAddressResult {
    userId?: number;
    needsAgreement?: boolean;
    shippingAddresses: KakaoShippingAddress[];
}
export interface KakaoShippingAddress {
    id: number;
    name?: string;
    isDefault: boolean;
    updatedAt?: number;
    type?: string;
    baseAddress?: string;
    detailAddress?: string;
    receiverName?: string;
    receiverPhoneNumber1?: string;
    receiverPhoneNumber2?: string;
    zoneNumber?: string;
    zipCode?: string;
}
export interface KakaoUser {
    id: number;
    email: string;
    name: string;
    nickname: string;
    profileImageUrl: string;
    thumbnailImageUrl: string;
    phoneNumber: string;
    ageRange: string;
    birthday: string;
    birthdayType: string;
    birthyear: string;
    gender: string;
    isEmailValid: boolean;
    isEmailVerified: boolean;
    isKorean: boolean;
    ageRangeNeedsAgreement?: boolean;
    birthdayNeedsAgreement?: boolean;
    birthyearNeedsAgreement?: boolean;
    emailNeedsAgreement?: boolean;
    genderNeedsAgreement?: boolean;
    isKoreanNeedsAgreement?: boolean;
    phoneNumberNeedsAgreement?: boolean;
    profileNeedsAgreement?: boolean;
    ciNeedsAgreement?: boolean;
    nameNeedsAgreement?: boolean;
    profileImageNeedsAgreement?: boolean;
    profileNicknameNeedsAgreement?: boolean;
    legalBirthDateNeedsAgreement?: boolean;
    connectedAt?: number;
    synchedAt?: number;
}
export interface KakaoAccessTokenInfo {
    id?: number;
    appId: number;
    expiresIn: number;
}
export declare function login({ serviceTerms, prompts, useKakaoAccountLogin, scopes, }?: {
    serviceTerms?: string[];
    prompts?: ('Login' | 'Create' | 'Cert' | 'UnifyDaum' | 'SelectAccount')[];
    scopes?: string[];
    useKakaoAccountLogin?: boolean;
    web?: {
        redirectUri: string;
        scope?: string[];
        throughTalk?: boolean;
        prompt?: ('login' | 'none' | 'create' | 'select_account')[];
        loginHint?: string;
        serviceTerms?: string[];
        state?: string;
        nonce?: string;
    };
}): Promise<KakaoLoginToken>;
export declare function logout(): Promise<void>;
export declare function unlink(): Promise<void>;
export declare function isLogined(): Promise<boolean>;
export declare function isKakaoTalkLoginAvailable(): Promise<boolean>;
export declare function scopes(scopes?: string[]): Promise<KakaoScopeInfo[]>;
export declare function revokeScopes(scopes: string[]): Promise<void>;
export declare function serviceTerms(): Promise<KakaoServiceTerms[]>;
export declare function shippingAddresses(): Promise<KakaoShippingAddressResult>;
export declare function me(): Promise<KakaoUser>;
export declare function getAccessToken(): Promise<KakaoAccessTokenInfo>;
export declare function setAccessTokenWeb(token: string): void;
export declare function issueAccessTokenWithCodeWeb(params: {
    redirectUri: string;
    clientSecret?: string;
    code: string;
}): Promise<{
    tokenType: string;
    accessToken: string;
    idToken?: string;
    expiresIn: number;
    refreshToken: string;
    refreshTokenExpiresIn: number;
    scope?: string;
}>;
declare const KakaoUser: {
    login: typeof login;
    logout: typeof logout;
    unlink: typeof unlink;
    isLogined: typeof isLogined;
    isKakaoTalkLoginAvailable: typeof isKakaoTalkLoginAvailable;
    scopes: typeof scopes;
    revokeScopes: typeof revokeScopes;
    serviceTerms: typeof serviceTerms;
    shippingAddresses: typeof shippingAddresses;
    me: typeof me;
    getAccessToken: typeof getAccessToken;
    setAccessTokenWeb: typeof setAccessTokenWeb;
    issueAccessTokenWithCodeWeb: typeof issueAccessTokenWithCodeWeb;
};
export default KakaoUser;
export type KakaoUserAPI = typeof KakaoUser;
//# sourceMappingURL=index.d.ts.map