import type { NobjcObject } from "objc-js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSCopying } from "../Foundation/NSCopying.js";
import type { _NSDateInterval } from "../Foundation/NSDateInterval.js";
import type { _NSError } from "../Foundation/NSError.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSSecureCoding } from "../Foundation/NSSecureCoding.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _INIntent } from "./INIntent.js";
import type { _INIntentResponse } from "./INIntentResponse.js";
import type { _INParameter } from "./INParameter.js";
import type { INIntentHandlingStatus } from "./INIntentHandlingStatus.js";
import type { INInteractionDirection } from "./INInteractionDirection.js";
export declare class _INInteraction extends _NSObject {
    static alloc(): _INInteraction;
    static new(): _INInteraction;
    init(): _INInteraction;
    /** delete all the interactions ever donated by the calling app */
    static deleteAllInteractionsWithCompletion$(completion: ((error: _NSError) => void) | null): void;
    /**
     * delete the interactions with the specified identifiers that were donated by this app
     */
    static deleteInteractionsWithIdentifiers$completion$(identifiers: _NSArray, completion: ((error: _NSError) => void) | null): void;
    /** delete this app's interactions with the specified group identifier */
    static deleteInteractionsWithGroupIdentifier$completion$(groupIdentifier: _NSString, completion: ((error: _NSError) => void) | null): void;
    initWithIntent$response$(intent: _INIntent, response: _INIntentResponse | null): _INInteraction;
    /** donate this interaction to the system */
    donateInteractionWithCompletion$(completion: ((error: _NSError) => void) | null): void;
    parameterValueForParameter$(parameter: _INParameter): NobjcObject | null;
    intent(): _INIntent;
    intentResponse(): _INIntentResponse | null;
    /**
     * Indicates the state of execution of the intent This is consistent with the response state of the intentResponse, if specified
     */
    intentHandlingStatus(): INIntentHandlingStatus;
    /** Indicates the direction of the interaction */
    direction(): INInteractionDirection;
    setDirection$(value: INInteractionDirection): void;
    /**
     * The time the interaction started/occurred and its duration. The app can override with their own timestamp but it defaults to the time of creation of this interaction object
     */
    dateInterval(): _NSDateInterval | null;
    setDateInterval$(value: _NSDateInterval | null): void;
    /**
     * A unique identifier for the interaction. It defaults to a globally unique identifier. The app can override with their own identifier that is unique in the app's domain
     */
    identifier(): _NSString;
    setIdentifier$(value: _NSString): void;
    /**
     * A user-defined identifier for the interaction group, this is handy during deletion time
     */
    groupIdentifier(): _NSString | null;
    setGroupIdentifier$(value: _NSString | null): void;
}
export interface _INInteraction extends _NSSecureCoding, _NSCopying {
}
