import { PolicyError } from "./PolicyError.js";
import type { Unrecognized } from "./../../../utils/unrecognized.js";
import { type PortOneClientInit } from "../../../client.js";
import type { ArchivePlatformAdditionalFeePolicyResponse } from "../../../generated/platform/policy/ArchivePlatformAdditionalFeePolicyResponse.js";
import type { ArchivePlatformContractResponse } from "../../../generated/platform/policy/ArchivePlatformContractResponse.js";
import type { ArchivePlatformDiscountSharePolicyResponse } from "../../../generated/platform/policy/ArchivePlatformDiscountSharePolicyResponse.js";
import type { CreatePlatformAdditionalFeePolicyResponse } from "../../../generated/platform/policy/CreatePlatformAdditionalFeePolicyResponse.js";
import type { CreatePlatformContractResponse } from "../../../generated/platform/policy/CreatePlatformContractResponse.js";
import type { CreatePlatformDiscountSharePolicyResponse } from "../../../generated/platform/policy/CreatePlatformDiscountSharePolicyResponse.js";
import type { ForbiddenError } from "../../../generated/common/ForbiddenError.js";
import type { GetPlatformAdditionalFeePoliciesResponse } from "../../../generated/platform/policy/GetPlatformAdditionalFeePoliciesResponse.js";
import type { GetPlatformContractsResponse } from "../../../generated/platform/policy/GetPlatformContractsResponse.js";
import type { GetPlatformDiscountSharePoliciesResponse } from "../../../generated/platform/policy/GetPlatformDiscountSharePoliciesResponse.js";
import type { InvalidRequestError } from "../../../generated/common/InvalidRequestError.js";
import type { PageInput } from "../../../generated/common/PageInput.js";
import type { PlatformAdditionalFeePolicy } from "../../../generated/platform/PlatformAdditionalFeePolicy.js";
import type { PlatformAdditionalFeePolicyAlreadyExistsError } from "../../../generated/platform/policy/PlatformAdditionalFeePolicyAlreadyExistsError.js";
import type { PlatformAdditionalFeePolicyFilterInput } from "../../../generated/platform/policy/PlatformAdditionalFeePolicyFilterInput.js";
import type { PlatformAdditionalFeePolicyNotFoundError } from "../../../generated/platform/PlatformAdditionalFeePolicyNotFoundError.js";
import type { PlatformArchivedAdditionalFeePolicyError } from "../../../generated/platform/PlatformArchivedAdditionalFeePolicyError.js";
import type { PlatformArchivedContractError } from "../../../generated/platform/PlatformArchivedContractError.js";
import type { PlatformArchivedDiscountSharePolicyError } from "../../../generated/platform/PlatformArchivedDiscountSharePolicyError.js";
import type { PlatformCannotArchiveScheduledAdditionalFeePolicyError } from "../../../generated/platform/policy/PlatformCannotArchiveScheduledAdditionalFeePolicyError.js";
import type { PlatformCannotArchiveScheduledContractError } from "../../../generated/platform/policy/PlatformCannotArchiveScheduledContractError.js";
import type { PlatformCannotArchiveScheduledDiscountSharePolicyError } from "../../../generated/platform/policy/PlatformCannotArchiveScheduledDiscountSharePolicyError.js";
import type { PlatformContract } from "../../../generated/platform/PlatformContract.js";
import type { PlatformContractAlreadyExistsError } from "../../../generated/platform/policy/PlatformContractAlreadyExistsError.js";
import type { PlatformContractFilterInput } from "../../../generated/platform/policy/PlatformContractFilterInput.js";
import type { PlatformContractNotFoundError } from "../../../generated/platform/PlatformContractNotFoundError.js";
import type { PlatformDiscountSharePolicy } from "../../../generated/platform/PlatformDiscountSharePolicy.js";
import type { PlatformDiscountSharePolicyAlreadyExistsError } from "../../../generated/platform/policy/PlatformDiscountSharePolicyAlreadyExistsError.js";
import type { PlatformDiscountSharePolicyFilterInput } from "../../../generated/platform/policy/PlatformDiscountSharePolicyFilterInput.js";
import type { PlatformDiscountSharePolicyNotFoundError } from "../../../generated/platform/PlatformDiscountSharePolicyNotFoundError.js";
import type { PlatformFeeInput } from "../../../generated/platform/PlatformFeeInput.js";
import type { PlatformNotEnabledError } from "../../../generated/platform/PlatformNotEnabledError.js";
import type { PlatformPayer } from "../../../generated/platform/PlatformPayer.js";
import type { PlatformSettlementCycleInput } from "../../../generated/platform/PlatformSettlementCycleInput.js";
import type { RecoverPlatformAdditionalFeePolicyResponse } from "../../../generated/platform/policy/RecoverPlatformAdditionalFeePolicyResponse.js";
import type { RecoverPlatformContractResponse } from "../../../generated/platform/policy/RecoverPlatformContractResponse.js";
import type { RecoverPlatformDiscountSharePolicyResponse } from "../../../generated/platform/policy/RecoverPlatformDiscountSharePolicyResponse.js";
import type { UnauthorizedError } from "../../../generated/common/UnauthorizedError.js";
import type { UpdatePlatformAdditionalFeePolicyResponse } from "../../../generated/platform/policy/UpdatePlatformAdditionalFeePolicyResponse.js";
import type { UpdatePlatformContractResponse } from "../../../generated/platform/policy/UpdatePlatformContractResponse.js";
import type { UpdatePlatformDiscountSharePolicyResponse } from "../../../generated/platform/policy/UpdatePlatformDiscountSharePolicyResponse.js";
/**
 * 포트원 API 클라이언트를 생성합니다.
 */
export declare function PolicyClient(init: PortOneClientInit): PolicyClient;
export type PolicyClient = {
    /**
     * 추가 수수료 정책 보관
     *
     * 주어진 아이디에 대응되는 추가 수수료 정책을 보관합니다.
     *
     * @throws {@link ArchivePlatformAdditionalFeePolicyError}
     */
    archivePlatformAdditionalFeePolicy: (options: {
        /** 추가 수수료 정책 아이디 */
        id: string;
        /**
         * 테스트 모드 여부
         *
         * 테스트 모드 여부를 결정합니다. true 이면 테스트 모드로 실행됩니다. Request Body에도 isForTest가 있을 수 있으나, 둘 다 제공되면 Query Parameter의 test 값을 사용하고, Request Body의 isForTest는 무시됩니다. Query Parameter의 test와 Request Body의 isForTest에 모두 값이 제공되지 않으면 기본값인 false로 적용됩니다.
         */
        test?: boolean;
    }) => Promise<ArchivePlatformAdditionalFeePolicyResponse>;
    /**
     * 추가 수수료 정책 복원
     *
     * 주어진 아이디에 대응되는 추가 수수료 정책을 복원합니다.
     *
     * @throws {@link RecoverPlatformAdditionalFeePolicyError}
     */
    recoverPlatformAdditionalFeePolicy: (options: {
        /** 추가 수수료 정책 아이디 */
        id: string;
        /**
         * 테스트 모드 여부
         *
         * 테스트 모드 여부를 결정합니다. true 이면 테스트 모드로 실행됩니다. Request Body에도 isForTest가 있을 수 있으나, 둘 다 제공되면 Query Parameter의 test 값을 사용하고, Request Body의 isForTest는 무시됩니다. Query Parameter의 test와 Request Body의 isForTest에 모두 값이 제공되지 않으면 기본값인 false로 적용됩니다.
         */
        test?: boolean;
    }) => Promise<RecoverPlatformAdditionalFeePolicyResponse>;
    /**
     * 추가 수수료 정책 조회
     *
     * 주어진 아이디에 대응되는 추가 수수료 정책을 조회합니다.
     *
     * @throws {@link GetPlatformAdditionalFeePolicyError}
     */
    getPlatformAdditionalFeePolicy: (options: {
        /** 조회할 추가 수수료 정책 아이디 */
        id: string;
        /**
         * 테스트 모드 여부
         *
         * 테스트 모드 여부를 결정합니다. true 이면 테스트 모드로 실행됩니다. Request Body에도 isForTest가 있을 수 있으나, 둘 다 제공되면 Query Parameter의 test 값을 사용하고, Request Body의 isForTest는 무시됩니다. Query Parameter의 test와 Request Body의 isForTest에 모두 값이 제공되지 않으면 기본값인 false로 적용됩니다.
         */
        test?: boolean;
    }) => Promise<PlatformAdditionalFeePolicy>;
    /**
     * 추가 수수료 정책 수정
     *
     * 주어진 아이디에 대응되는 추가 수수료 정책을 업데이트합니다.
     *
     * @throws {@link UpdatePlatformAdditionalFeePolicyError}
     */
    updatePlatformAdditionalFeePolicy: (options: {
        /** 업데이트할 추가 수수료 정책 아이디 */
        id: string;
        /**
         * 테스트 모드 여부
         *
         * 테스트 모드 여부를 결정합니다. true 이면 테스트 모드로 실행됩니다. Request Body에도 isForTest가 있을 수 있으나, 둘 다 제공되면 Query Parameter의 test 값을 사용하고, Request Body의 isForTest는 무시됩니다. Query Parameter의 test와 Request Body의 isForTest에 모두 값이 제공되지 않으면 기본값인 false로 적용됩니다.
         */
        test?: boolean;
        /** 책정 수수료 */
        fee?: PlatformFeeInput;
        /** 추가 수수료 정책 이름 */
        name?: string;
        /** 해당 추가 수수료 정책에 대한 메모 */
        memo?: string;
        /** 부가세를 부담할 주체 */
        vatPayer?: PlatformPayer;
    }) => Promise<UpdatePlatformAdditionalFeePolicyResponse>;
    /**
     * 추가 수수료 정책 다건 조회
     *
     * 여러 추가 수수료 정책을 조회합니다.
     *
     * @throws {@link GetPlatformAdditionalFeePoliciesError}
     */
    getPlatformAdditionalFeePolicies: (options?: {
        /**
         * 테스트 모드 여부
         *
         * 테스트 모드 여부를 결정합니다. true 이면 테스트 모드로 실행됩니다. Request Body에도 isForTest가 있을 수 있으나, 둘 다 제공되면 Query Parameter의 test 값을 사용하고, Request Body의 isForTest는 무시됩니다. Query Parameter의 test와 Request Body의 isForTest에 모두 값이 제공되지 않으면 기본값인 false로 적용됩니다.
         */
        test?: boolean;
        /** 요청할 페이지 정보 */
        page?: PageInput;
        /** 조회할 추가 수수료 정책 조건 필터 */
        filter?: PlatformAdditionalFeePolicyFilterInput;
    }) => Promise<GetPlatformAdditionalFeePoliciesResponse>;
    /**
     * 추가 수수료 정책 생성
     *
     * 새로운 추가 수수료 정책을 생성합니다.
     *
     * @throws {@link CreatePlatformAdditionalFeePolicyError}
     */
    createPlatformAdditionalFeePolicy: (options: {
        /**
         * 테스트 모드 여부
         *
         * 테스트 모드 여부를 결정합니다. true 이면 테스트 모드로 실행됩니다. Request Body에도 isForTest가 있을 수 있으나, 둘 다 제공되면 Query Parameter의 test 값을 사용하고, Request Body의 isForTest는 무시됩니다. Query Parameter의 test와 Request Body의 isForTest에 모두 값이 제공되지 않으면 기본값인 false로 적용됩니다.
         */
        test?: boolean;
        /**
         * 생성할 추가 수수료 정책 아이디
         *
         * 명시하지 않으면 id 가 임의로 생성됩니다.
         */
        id?: string;
        /** 이름 */
        name: string;
        /** 수수료 정보 */
        fee: PlatformFeeInput;
        /** 메모 */
        memo?: string;
        /** 부가세 부담 주체 */
        vatPayer: PlatformPayer;
    }) => Promise<CreatePlatformAdditionalFeePolicyResponse>;
    /**
     * 계약 보관
     *
     * 주어진 아이디에 대응되는 계약을 보관합니다.
     *
     * @throws {@link ArchivePlatformContractError}
     */
    archivePlatformContract: (options: {
        /** 계약 아이디 */
        id: string;
        /**
         * 테스트 모드 여부
         *
         * 테스트 모드 여부를 결정합니다. true 이면 테스트 모드로 실행됩니다. Request Body에도 isForTest가 있을 수 있으나, 둘 다 제공되면 Query Parameter의 test 값을 사용하고, Request Body의 isForTest는 무시됩니다. Query Parameter의 test와 Request Body의 isForTest에 모두 값이 제공되지 않으면 기본값인 false로 적용됩니다.
         */
        test?: boolean;
    }) => Promise<ArchivePlatformContractResponse>;
    /**
     * 계약 복원
     *
     * 주어진 아이디에 대응되는 계약을 복원합니다.
     *
     * @throws {@link RecoverPlatformContractError}
     */
    recoverPlatformContract: (options: {
        /** 계약 아이디 */
        id: string;
        /**
         * 테스트 모드 여부
         *
         * 테스트 모드 여부를 결정합니다. true 이면 테스트 모드로 실행됩니다. Request Body에도 isForTest가 있을 수 있으나, 둘 다 제공되면 Query Parameter의 test 값을 사용하고, Request Body의 isForTest는 무시됩니다. Query Parameter의 test와 Request Body의 isForTest에 모두 값이 제공되지 않으면 기본값인 false로 적용됩니다.
         */
        test?: boolean;
    }) => Promise<RecoverPlatformContractResponse>;
    /**
     * 계약 조회
     *
     * 주어진 아이디에 대응되는 계약을 조회합니다.
     *
     * @throws {@link GetPlatformContractError}
     */
    getPlatformContract: (options: {
        /** 조회할 계약 아이디 */
        id: string;
        /**
         * 테스트 모드 여부
         *
         * 테스트 모드 여부를 결정합니다. true 이면 테스트 모드로 실행됩니다. Request Body에도 isForTest가 있을 수 있으나, 둘 다 제공되면 Query Parameter의 test 값을 사용하고, Request Body의 isForTest는 무시됩니다. Query Parameter의 test와 Request Body의 isForTest에 모두 값이 제공되지 않으면 기본값인 false로 적용됩니다.
         */
        test?: boolean;
    }) => Promise<PlatformContract>;
    /**
     * 계약 수정
     *
     * 주어진 아이디에 대응되는 계약을 업데이트합니다.
     *
     * @throws {@link UpdatePlatformContractError}
     */
    updatePlatformContract: (options: {
        /** 업데이트할 계약 아이디 */
        id: string;
        /**
         * 테스트 모드 여부
         *
         * 테스트 모드 여부를 결정합니다. true 이면 테스트 모드로 실행됩니다. Request Body에도 isForTest가 있을 수 있으나, 둘 다 제공되면 Query Parameter의 test 값을 사용하고, Request Body의 isForTest는 무시됩니다. Query Parameter의 test와 Request Body의 isForTest에 모두 값이 제공되지 않으면 기본값인 false로 적용됩니다.
         */
        test?: boolean;
        /** 계약 이름 */
        name?: string;
        /** 계약 내부 표기를 위한 메모 */
        memo?: string;
        /** 중개수수료 */
        platformFee?: PlatformFeeInput;
        /** 정산 주기 */
        settlementCycle?: PlatformSettlementCycleInput;
        /** 중개수수료에 대한 부가세 부담 주체 */
        platformFeeVatPayer?: PlatformPayer;
        /** 정산 시 결제금액 부가세 감액 여부 */
        subtractPaymentVatAmount?: boolean;
    }) => Promise<UpdatePlatformContractResponse>;
    /**
     * 계약 다건 조회
     *
     * 여러 계약을 조회합니다.
     *
     * @throws {@link GetPlatformContractsError}
     */
    getPlatformContracts: (options?: {
        /**
         * 테스트 모드 여부
         *
         * 테스트 모드 여부를 결정합니다. true 이면 테스트 모드로 실행됩니다. Request Body에도 isForTest가 있을 수 있으나, 둘 다 제공되면 Query Parameter의 test 값을 사용하고, Request Body의 isForTest는 무시됩니다. Query Parameter의 test와 Request Body의 isForTest에 모두 값이 제공되지 않으면 기본값인 false로 적용됩니다.
         */
        test?: boolean;
        /** 요청할 페이지 정보 */
        page?: PageInput;
        /** 조회할 계약 조건 필터 */
        filter?: PlatformContractFilterInput;
    }) => Promise<GetPlatformContractsResponse>;
    /**
     * 계약 생성
     *
     * 새로운 계약을 생성합니다.
     *
     * @throws {@link CreatePlatformContractError}
     */
    createPlatformContract: (options: {
        /**
         * 테스트 모드 여부
         *
         * 테스트 모드 여부를 결정합니다. true 이면 테스트 모드로 실행됩니다. Request Body에도 isForTest가 있을 수 있으나, 둘 다 제공되면 Query Parameter의 test 값을 사용하고, Request Body의 isForTest는 무시됩니다. Query Parameter의 test와 Request Body의 isForTest에 모두 값이 제공되지 않으면 기본값인 false로 적용됩니다.
         */
        test?: boolean;
        /**
         * 계약에 부여할 고유 아이디
         *
         * 명시하지 않는 경우 포트원이 임의의 아이디를 발급해드립니다.
         */
        id?: string;
        /** 계약 이름 */
        name: string;
        /** 계약 내부 표기를 위한 메모 */
        memo?: string;
        /** 중개수수료 */
        platformFee: PlatformFeeInput;
        /** 정산 주기 */
        settlementCycle: PlatformSettlementCycleInput;
        /** 중개수수료에 대한 부가세 부담 주체 */
        platformFeeVatPayer: PlatformPayer;
        /** 정산 시 결제금액 부가세 감액 여부 */
        subtractPaymentVatAmount: boolean;
    }) => Promise<CreatePlatformContractResponse>;
    /**
     * 할인 분담 정책 보관
     *
     * 주어진 아이디에 대응되는 할인 분담을 보관합니다.
     *
     * @throws {@link ArchivePlatformDiscountSharePolicyError}
     */
    archivePlatformDiscountSharePolicy: (options: {
        /** 할인 분담 아이디 */
        id: string;
        /**
         * 테스트 모드 여부
         *
         * 테스트 모드 여부를 결정합니다. true 이면 테스트 모드로 실행됩니다. Request Body에도 isForTest가 있을 수 있으나, 둘 다 제공되면 Query Parameter의 test 값을 사용하고, Request Body의 isForTest는 무시됩니다. Query Parameter의 test와 Request Body의 isForTest에 모두 값이 제공되지 않으면 기본값인 false로 적용됩니다.
         */
        test?: boolean;
    }) => Promise<ArchivePlatformDiscountSharePolicyResponse>;
    /**
     * 할인 분담 정책 복원
     *
     * 주어진 아이디에 대응되는 할인 분담을 복원합니다.
     *
     * @throws {@link RecoverPlatformDiscountSharePolicyError}
     */
    recoverPlatformDiscountSharePolicy: (options: {
        /** 할인 분담 아이디 */
        id: string;
        /**
         * 테스트 모드 여부
         *
         * 테스트 모드 여부를 결정합니다. true 이면 테스트 모드로 실행됩니다. Request Body에도 isForTest가 있을 수 있으나, 둘 다 제공되면 Query Parameter의 test 값을 사용하고, Request Body의 isForTest는 무시됩니다. Query Parameter의 test와 Request Body의 isForTest에 모두 값이 제공되지 않으면 기본값인 false로 적용됩니다.
         */
        test?: boolean;
    }) => Promise<RecoverPlatformDiscountSharePolicyResponse>;
    /**
     * 할인 분담 정책 조회
     *
     * 주어진 아이디에 대응되는 할인 분담을 조회합니다.
     *
     * @throws {@link GetPlatformDiscountSharePolicyError}
     */
    getPlatformDiscountSharePolicy: (options: {
        /** 조회할 할인 분담 정책 아이디 */
        id: string;
        /**
         * 테스트 모드 여부
         *
         * 테스트 모드 여부를 결정합니다. true 이면 테스트 모드로 실행됩니다. Request Body에도 isForTest가 있을 수 있으나, 둘 다 제공되면 Query Parameter의 test 값을 사용하고, Request Body의 isForTest는 무시됩니다. Query Parameter의 test와 Request Body의 isForTest에 모두 값이 제공되지 않으면 기본값인 false로 적용됩니다.
         */
        test?: boolean;
    }) => Promise<PlatformDiscountSharePolicy>;
    /**
     * 할인 분담 정책 수정
     *
     * 주어진 아이디에 대응되는 할인 분담을 업데이트합니다.
     *
     * @throws {@link UpdatePlatformDiscountSharePolicyError}
     */
    updatePlatformDiscountSharePolicy: (options: {
        /** 업데이트할 할인 분담 정책 아이디 */
        id: string;
        /**
         * 테스트 모드 여부
         *
         * 테스트 모드 여부를 결정합니다. true 이면 테스트 모드로 실행됩니다. Request Body에도 isForTest가 있을 수 있으나, 둘 다 제공되면 Query Parameter의 test 값을 사용하고, Request Body의 isForTest는 무시됩니다. Query Parameter의 test와 Request Body의 isForTest에 모두 값이 제공되지 않으면 기본값인 false로 적용됩니다.
         */
        test?: boolean;
        /** 할인 분담 정책 이름 */
        name?: string;
        /**
         * 할인 분담율
         *
         * 파트너가 분담할 할인금액의 비율을 의미하는 밀리 퍼센트 단위 (10^-5) 의 음이 아닌 정수이며, 파트너가 부담할 금액은 `할인금액 * partnerShareRate * 10^5` 로 책정합니다.
         * (int32)
         */
        partnerShareRate?: number;
        /** 해당 할인 분담에 대한 메모 */
        memo?: string;
    }) => Promise<UpdatePlatformDiscountSharePolicyResponse>;
    /**
     * 할인 분담 정책 다건 조회
     *
     * 여러 할인 분담을 조회합니다.
     *
     * @throws {@link GetPlatformDiscountSharePoliciesError}
     */
    getPlatformDiscountSharePolicies: (options?: {
        /**
         * 테스트 모드 여부
         *
         * 테스트 모드 여부를 결정합니다. true 이면 테스트 모드로 실행됩니다. Request Body에도 isForTest가 있을 수 있으나, 둘 다 제공되면 Query Parameter의 test 값을 사용하고, Request Body의 isForTest는 무시됩니다. Query Parameter의 test와 Request Body의 isForTest에 모두 값이 제공되지 않으면 기본값인 false로 적용됩니다.
         */
        test?: boolean;
        /** 요청할 페이지 정보 */
        page?: PageInput;
        /** 조회할 할인 분담 정책 조건 필터 */
        filter?: PlatformDiscountSharePolicyFilterInput;
    }) => Promise<GetPlatformDiscountSharePoliciesResponse>;
    /**
     * 할인 분담 정책 생성
     *
     * 새로운 할인 분담을 생성합니다.
     *
     * @throws {@link CreatePlatformDiscountSharePolicyError}
     */
    createPlatformDiscountSharePolicy: (options: {
        /**
         * 테스트 모드 여부
         *
         * 테스트 모드 여부를 결정합니다. true 이면 테스트 모드로 실행됩니다. Request Body에도 isForTest가 있을 수 있으나, 둘 다 제공되면 Query Parameter의 test 값을 사용하고, Request Body의 isForTest는 무시됩니다. Query Parameter의 test와 Request Body의 isForTest에 모두 값이 제공되지 않으면 기본값인 false로 적용됩니다.
         */
        test?: boolean;
        /**
         * 할인 분담에 부여할 고유 아이디
         *
         * 명시하지 않는 경우 포트원이 임의의 아이디를 발급해드립니다.
         */
        id?: string;
        /** 할인 분담에 부여할 이름 */
        name: string;
        /**
         * 파트너가 분담할 할인금액의 비율을 의미하는 밀리 퍼센트 단위 (10^-5) 의 음이 아닌 정수이며, 파트너가 부담할 금액은 `할인금액 * partnerShareRate * 10^5` 로 책정합니다.
         * (int32)
         */
        partnerShareRate: number;
        /** 해당 할인 분담에 대한 메모 ex) 파트너 브랜드 쿠폰 */
        memo?: string;
    }) => Promise<CreatePlatformDiscountSharePolicyResponse>;
};
export declare class ArchivePlatformAdditionalFeePolicyError extends PolicyError {
    readonly data: ForbiddenError | InvalidRequestError | PlatformAdditionalFeePolicyNotFoundError | PlatformCannotArchiveScheduledAdditionalFeePolicyError | PlatformNotEnabledError | UnauthorizedError | {
        readonly type: Unrecognized;
    };
    /** @ignore */
    constructor(data: ForbiddenError | InvalidRequestError | PlatformAdditionalFeePolicyNotFoundError | PlatformCannotArchiveScheduledAdditionalFeePolicyError | PlatformNotEnabledError | UnauthorizedError | {
        readonly type: Unrecognized;
    });
}
export declare class RecoverPlatformAdditionalFeePolicyError extends PolicyError {
    readonly data: ForbiddenError | InvalidRequestError | PlatformAdditionalFeePolicyNotFoundError | PlatformNotEnabledError | UnauthorizedError | {
        readonly type: Unrecognized;
    };
    /** @ignore */
    constructor(data: ForbiddenError | InvalidRequestError | PlatformAdditionalFeePolicyNotFoundError | PlatformNotEnabledError | UnauthorizedError | {
        readonly type: Unrecognized;
    });
}
export declare class GetPlatformAdditionalFeePolicyError extends PolicyError {
    readonly data: ForbiddenError | InvalidRequestError | PlatformAdditionalFeePolicyNotFoundError | PlatformNotEnabledError | UnauthorizedError | {
        readonly type: Unrecognized;
    };
    /** @ignore */
    constructor(data: ForbiddenError | InvalidRequestError | PlatformAdditionalFeePolicyNotFoundError | PlatformNotEnabledError | UnauthorizedError | {
        readonly type: Unrecognized;
    });
}
export declare class UpdatePlatformAdditionalFeePolicyError extends PolicyError {
    readonly data: ForbiddenError | InvalidRequestError | PlatformAdditionalFeePolicyNotFoundError | PlatformArchivedAdditionalFeePolicyError | PlatformNotEnabledError | UnauthorizedError | {
        readonly type: Unrecognized;
    };
    /** @ignore */
    constructor(data: ForbiddenError | InvalidRequestError | PlatformAdditionalFeePolicyNotFoundError | PlatformArchivedAdditionalFeePolicyError | PlatformNotEnabledError | UnauthorizedError | {
        readonly type: Unrecognized;
    });
}
export declare class GetPlatformAdditionalFeePoliciesError extends PolicyError {
    readonly data: ForbiddenError | InvalidRequestError | PlatformNotEnabledError | UnauthorizedError | {
        readonly type: Unrecognized;
    };
    /** @ignore */
    constructor(data: ForbiddenError | InvalidRequestError | PlatformNotEnabledError | UnauthorizedError | {
        readonly type: Unrecognized;
    });
}
export declare class CreatePlatformAdditionalFeePolicyError extends PolicyError {
    readonly data: ForbiddenError | InvalidRequestError | PlatformAdditionalFeePolicyAlreadyExistsError | PlatformNotEnabledError | UnauthorizedError | {
        readonly type: Unrecognized;
    };
    /** @ignore */
    constructor(data: ForbiddenError | InvalidRequestError | PlatformAdditionalFeePolicyAlreadyExistsError | PlatformNotEnabledError | UnauthorizedError | {
        readonly type: Unrecognized;
    });
}
export declare class ArchivePlatformContractError extends PolicyError {
    readonly data: ForbiddenError | InvalidRequestError | PlatformCannotArchiveScheduledContractError | PlatformContractNotFoundError | PlatformNotEnabledError | UnauthorizedError | {
        readonly type: Unrecognized;
    };
    /** @ignore */
    constructor(data: ForbiddenError | InvalidRequestError | PlatformCannotArchiveScheduledContractError | PlatformContractNotFoundError | PlatformNotEnabledError | UnauthorizedError | {
        readonly type: Unrecognized;
    });
}
export declare class RecoverPlatformContractError extends PolicyError {
    readonly data: ForbiddenError | InvalidRequestError | PlatformContractNotFoundError | PlatformNotEnabledError | UnauthorizedError | {
        readonly type: Unrecognized;
    };
    /** @ignore */
    constructor(data: ForbiddenError | InvalidRequestError | PlatformContractNotFoundError | PlatformNotEnabledError | UnauthorizedError | {
        readonly type: Unrecognized;
    });
}
export declare class GetPlatformContractError extends PolicyError {
    readonly data: ForbiddenError | InvalidRequestError | PlatformContractNotFoundError | PlatformNotEnabledError | UnauthorizedError | {
        readonly type: Unrecognized;
    };
    /** @ignore */
    constructor(data: ForbiddenError | InvalidRequestError | PlatformContractNotFoundError | PlatformNotEnabledError | UnauthorizedError | {
        readonly type: Unrecognized;
    });
}
export declare class UpdatePlatformContractError extends PolicyError {
    readonly data: ForbiddenError | InvalidRequestError | PlatformArchivedContractError | PlatformContractNotFoundError | PlatformNotEnabledError | UnauthorizedError | {
        readonly type: Unrecognized;
    };
    /** @ignore */
    constructor(data: ForbiddenError | InvalidRequestError | PlatformArchivedContractError | PlatformContractNotFoundError | PlatformNotEnabledError | UnauthorizedError | {
        readonly type: Unrecognized;
    });
}
export declare class GetPlatformContractsError extends PolicyError {
    readonly data: ForbiddenError | InvalidRequestError | PlatformNotEnabledError | UnauthorizedError | {
        readonly type: Unrecognized;
    };
    /** @ignore */
    constructor(data: ForbiddenError | InvalidRequestError | PlatformNotEnabledError | UnauthorizedError | {
        readonly type: Unrecognized;
    });
}
export declare class CreatePlatformContractError extends PolicyError {
    readonly data: ForbiddenError | InvalidRequestError | PlatformContractAlreadyExistsError | PlatformNotEnabledError | UnauthorizedError | {
        readonly type: Unrecognized;
    };
    /** @ignore */
    constructor(data: ForbiddenError | InvalidRequestError | PlatformContractAlreadyExistsError | PlatformNotEnabledError | UnauthorizedError | {
        readonly type: Unrecognized;
    });
}
export declare class ArchivePlatformDiscountSharePolicyError extends PolicyError {
    readonly data: ForbiddenError | InvalidRequestError | PlatformCannotArchiveScheduledDiscountSharePolicyError | PlatformDiscountSharePolicyNotFoundError | PlatformNotEnabledError | UnauthorizedError | {
        readonly type: Unrecognized;
    };
    /** @ignore */
    constructor(data: ForbiddenError | InvalidRequestError | PlatformCannotArchiveScheduledDiscountSharePolicyError | PlatformDiscountSharePolicyNotFoundError | PlatformNotEnabledError | UnauthorizedError | {
        readonly type: Unrecognized;
    });
}
export declare class RecoverPlatformDiscountSharePolicyError extends PolicyError {
    readonly data: ForbiddenError | InvalidRequestError | PlatformDiscountSharePolicyNotFoundError | PlatformNotEnabledError | UnauthorizedError | {
        readonly type: Unrecognized;
    };
    /** @ignore */
    constructor(data: ForbiddenError | InvalidRequestError | PlatformDiscountSharePolicyNotFoundError | PlatformNotEnabledError | UnauthorizedError | {
        readonly type: Unrecognized;
    });
}
export declare class GetPlatformDiscountSharePolicyError extends PolicyError {
    readonly data: ForbiddenError | InvalidRequestError | PlatformDiscountSharePolicyNotFoundError | PlatformNotEnabledError | UnauthorizedError | {
        readonly type: Unrecognized;
    };
    /** @ignore */
    constructor(data: ForbiddenError | InvalidRequestError | PlatformDiscountSharePolicyNotFoundError | PlatformNotEnabledError | UnauthorizedError | {
        readonly type: Unrecognized;
    });
}
export declare class UpdatePlatformDiscountSharePolicyError extends PolicyError {
    readonly data: ForbiddenError | InvalidRequestError | PlatformArchivedDiscountSharePolicyError | PlatformDiscountSharePolicyNotFoundError | PlatformNotEnabledError | UnauthorizedError | {
        readonly type: Unrecognized;
    };
    /** @ignore */
    constructor(data: ForbiddenError | InvalidRequestError | PlatformArchivedDiscountSharePolicyError | PlatformDiscountSharePolicyNotFoundError | PlatformNotEnabledError | UnauthorizedError | {
        readonly type: Unrecognized;
    });
}
export declare class GetPlatformDiscountSharePoliciesError extends PolicyError {
    readonly data: ForbiddenError | InvalidRequestError | PlatformNotEnabledError | UnauthorizedError | {
        readonly type: Unrecognized;
    };
    /** @ignore */
    constructor(data: ForbiddenError | InvalidRequestError | PlatformNotEnabledError | UnauthorizedError | {
        readonly type: Unrecognized;
    });
}
export declare class CreatePlatformDiscountSharePolicyError extends PolicyError {
    readonly data: ForbiddenError | InvalidRequestError | PlatformDiscountSharePolicyAlreadyExistsError | PlatformNotEnabledError | UnauthorizedError | {
        readonly type: Unrecognized;
    };
    /** @ignore */
    constructor(data: ForbiddenError | InvalidRequestError | PlatformDiscountSharePolicyAlreadyExistsError | PlatformNotEnabledError | UnauthorizedError | {
        readonly type: Unrecognized;
    });
}
