import type { DeliveryIndicationState } from './DeliveryIndicationState';
import type { Transaction } from './Transaction';
import type { DeliveryIndicationDecisionReason } from './DeliveryIndicationDecisionReason';
import type { TransactionCompletion } from './TransactionCompletion';
/**
 *
 * @export
 * @interface DeliveryIndication
 */
export interface DeliveryIndication {
    /**
     *
     * @type {TransactionCompletion}
     * @memberof DeliveryIndication
     */
    completion?: TransactionCompletion;
    /**
     * The date and time when the object is planned to be permanently removed. If the value is empty, the object will not be removed.
     * @type {Date}
     * @memberof DeliveryIndication
     */
    readonly plannedPurgeDate?: Date;
    /**
     *
     * @type {DeliveryIndicationDecisionReason}
     * @memberof DeliveryIndication
     */
    automaticDecisionReason?: DeliveryIndicationDecisionReason;
    /**
     * The date and time when an automatic decision was made.
     * @type {Date}
     * @memberof DeliveryIndication
     */
    readonly automaticallyDecidedOn?: Date;
    /**
     * The date and time when the object was created.
     * @type {Date}
     * @memberof DeliveryIndication
     */
    readonly createdOn?: Date;
    /**
     * The ID of the space this object belongs to.
     * @type {number}
     * @memberof DeliveryIndication
     */
    readonly linkedSpaceId?: number;
    /**
     * The ID of the user who manually decided the delivery indication's state.
     * @type {number}
     * @memberof DeliveryIndication
     */
    readonly manuallyDecidedBy?: number;
    /**
     * The date and time when the delivery indication will expire.
     * @type {Date}
     * @memberof DeliveryIndication
     */
    readonly timeoutOn?: Date;
    /**
     * The date and time by which a decision must be made before the system automatically proceeds according to the connector's predefined settings.
     * @type {Date}
     * @memberof DeliveryIndication
     */
    readonly manualDecisionTimeoutOn?: Date;
    /**
     * The date and time when a manual decision was made.
     * @type {Date}
     * @memberof DeliveryIndication
     */
    readonly manuallyDecidedOn?: Date;
    /**
     * A unique identifier for the object.
     * @type {number}
     * @memberof DeliveryIndication
     */
    readonly id?: number;
    /**
     *
     * @type {DeliveryIndicationState}
     * @memberof DeliveryIndication
     */
    state?: DeliveryIndicationState;
    /**
     * The payment transaction this object is linked to.
     * @type {number}
     * @memberof DeliveryIndication
     */
    readonly linkedTransaction?: number;
    /**
     *
     * @type {Transaction}
     * @memberof DeliveryIndication
     */
    transaction?: Transaction;
}
/**
 * Check if a given object implements the DeliveryIndication interface.
 */
export declare function instanceOfDeliveryIndication(value: object): value is DeliveryIndication;
export declare function DeliveryIndicationFromJSON(json: any): DeliveryIndication;
export declare function DeliveryIndicationFromJSONTyped(json: any, ignoreDiscriminator: boolean): DeliveryIndication;
export declare function DeliveryIndicationToJSON(json: any): DeliveryIndication;
export declare function DeliveryIndicationToJSONTyped(value?: Omit<DeliveryIndication, 'plannedPurgeDate' | 'automaticallyDecidedOn' | 'createdOn' | 'linkedSpaceId' | 'manuallyDecidedBy' | 'timeoutOn' | 'manualDecisionTimeoutOn' | 'manuallyDecidedOn' | 'id' | 'linkedTransaction'> | null, ignoreDiscriminator?: boolean): any;
