/**
 * @packageDocumentation
 * @module api.functional.subscribe.customers
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
import type { IConnection } from "@nestia/fetcher";
import type { IIamportResponse } from "../../../structures/IIamportResponse";
import type { IIamportSubscription } from "../../../structures/IIamportSubscription";
/**
 * 간편 결제 카드 정보 조회하기.
 *
 * `subscribe.customers.at` 은 고객이 {@link create} 나 혹은 아임포트가 제공하는
 * 간편 결제 카드 등록 창을 이용하여 저장한 간편 결제 카드 정보를 조회하는 API
 * 함수이다.
 *
 * @param customer_uid 고객 (간편 결제 카드) 식별자 키
 * @returns 간편 결제 카드 정보
 * @security bearer
 * @author Samchon
 *
 * @controller FakeIamportSubscribeCustomersController.at
 * @path GET /subscribe/customers/:customer_uid
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function at(connection: IConnection, customer_uid: string): Promise<at.Output>;
export declare namespace at {
    type Output = IIamportResponse<IIamportSubscription>;
    const METADATA: {
        readonly method: "GET";
        readonly path: "/subscribe/customers/:customer_uid";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
        readonly status: 200;
    };
    const path: (customer_uid: string) => string;
}
/**
 * 간편 결제 카드 등록하기.
 *
 * `subscribe.customers.stoer` 는 고객이 자신의 카드를 서버에 등록해두고, 매번 결제가
 * 필요할 때마다 카드 정보를 반복 입력하는 일 없이, 간편하게 결제를 진행하고자 할 때
 * 사용하는 API 함수이다.
 *
 * 참고로 `subscribe.customers.create` 는 클라이언트 어플리케이션이 아임포트가 제공하는
 * 간편 결제 카드 등록 창을 사용하는 경우, 귀하의 백엔드 서버가 이를 실 서비스에서 호출하는
 * 일은 없을 것이다. 다만, 고객이 간편 결제 카드를 등록하는 상황을 시뮬레이션하기 위하여,
 * 테스트 자동화 프로그램 수준에서 사용될 수는 있다.
 *
 * @param customer_uid 고객 (간편 결제 카드) 식별자 키
 * @param input 카드 입력 정보
 * @returns 간편 결제 카드 정보
 * @security bearer
 * @author Samchon
 *
 * @controller FakeIamportSubscribeCustomersController.create
 * @path POST /subscribe/customers/:customer_uid
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function create(connection: IConnection, customer_uid: string, input: IIamportSubscription.ICreate): Promise<create.Output>;
export declare namespace create {
    type Input = IIamportSubscription.ICreate;
    type Output = IIamportResponse<IIamportSubscription>;
    const METADATA: {
        readonly method: "POST";
        readonly path: "/subscribe/customers/:customer_uid";
        readonly request: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
        readonly status: 201;
    };
    const path: (customer_uid: string) => string;
}
/**
 * 간편 결제 카드 삭제하기.
 *
 * 간편 결제를 위하여 등록한 카드를 제거한다.
 *
 * @param customer_uid 고객 (간편 결제 카드) 식별자 키
 * @returns 삭제된 간편 결제 카드 정보
 * @security bearer
 * @author Samchon
 *
 * @controller FakeIamportSubscribeCustomersController.erase
 * @path DELETE /subscribe/customers/:customer_uid
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function erase(connection: IConnection, customer_uid: string): Promise<erase.Output>;
export declare namespace erase {
    type Output = IIamportResponse<IIamportSubscription>;
    const METADATA: {
        readonly method: "DELETE";
        readonly path: "/subscribe/customers/:customer_uid";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
        readonly status: 200;
    };
    const path: (customer_uid: string) => string;
}
