using NTwain.Data;
using NTwain.Triplets;
using System;
using System.Collections.Generic;
using System.Threading;
namespace NTwain.Internals
{
interface ITwainSessionInternal : ITwainSession
{
///
/// Gets the app id used for the session.
///
///
TWIdentity AppId { get; }
MessageLoopHook MessageLoopHook { get; }
///
/// Changes the state right away.
///
/// The new state.
/// if set to true to notify change.
void ChangeState(int newState, bool notifyChange);
///
/// Gets the pending state changer and tentatively changes the session state to the specified value.
/// Value will only stick if committed.
///
/// The new state.
///
ICommittable GetPendingStateChanger(int newState);
void ChangeCurrentSource(TwainSource source);
ReturnCode DisableSource();
void SafeSyncableRaiseEvent(DataTransferredEventArgs e);
void SafeSyncableRaiseEvent(TransferErrorEventArgs e);
void SafeSyncableRaiseEvent(TransferReadyEventArgs e);
ReturnCode EnableSource(SourceEnableMode mode, bool modal, IntPtr windowHandle);
///
/// Gets the triplet operations defined for audio data group.
///
DGAudio DGAudio { get; }
///
/// Gets the triplet operations defined for control data group.
///
DGControl DGControl { get; }
///
/// Gets the triplet operations defined for image data group.
///
DGImage DGImage { get; }
///
/// Gets the direct triplet operation entry for custom values.
///
DGCustom DGCustom { get; }
}
}