import { Common } from "./common.namespace";
/**
 * Diagnosis
 * @description Namespace for Diagnosis
 */
export declare namespace Diagnosis {
    /**
     * Enums
     * @description Namespace for Enums
     */
    namespace Enums {
        /**
         * Global status
         * @description Enum for Global status
         */
        enum GlobalStatus {
            OK = "OK",
            Busy = "Busy",
            Maintenance = "Maintenance",
            Unreachable = "Unreachable"
        }
        /**
         * Printer status
         * @description Enum for Printer status
         */
        enum PrinterStatus {
            OK = "OK",
            PaperLow = "PaperLow",
            NoPaper = "NoPaper",
            PaperJam = "PaperJam",
            OutOfOrder = "OutOfOrder"
        }
    }
    /**
     * Interfaces
     * @description Namespace for Interfaces
     */
    namespace Interfaces {
        /**
         * Request
         * @description Interface for Request
         */
        interface IRequest extends Common.Interfaces.ISaleToPOIRequest {
            DiagnosisRequest?: IDiagnosisRequest;
        }
        /**
         * Response
         * @description Interface for Response
         */
        interface IResponse extends Common.Interfaces.ISaleToPOIResponse {
            DiagnosisResponse?: IDiagnosisResponse;
        }
        /**
         * Diagnosis request
         * @description Interface for Diagnosis request
         */
        interface IDiagnosisRequest {
            HostDiagnosisFlag?: boolean;
        }
        /**
         * Diagnosis response
         * @description Interface for Diagnosis response
         */
        interface IDiagnosisResponse {
            POIStatus?: IPOIStatus;
            HostStatus?: IHostStatus;
        }
        /**
         * POI status
         * @description Interface for POI status
         */
        interface IPOIStatus {
            CommunicationOKFlag?: boolean;
            GlobalStatus?: Enums.GlobalStatus;
            PrinterStatusType?: Enums.PrinterStatus;
            SecurityOKFlag?: boolean;
        }
        /**
         * Host status
         * @description Interface for Host status
         */
        interface IHostStatus {
            IsReachableFlag?: boolean;
        }
        /**
         * Host proprietary tags
         * @description Interface for Host proprietary tags
         */
        interface IHostProprietaryTags {
            HostResponseMessage?: string;
            HostResponseOK?: boolean;
        }
    }
}
