///
import freedom_types = require('freedom.types');
import peerconnection = require('../../../../third_party/uproxy-lib/webrtc/peerconnection');
// 'model' object contains variables about the state of the application.
// Polymer elements will bind to model so that the elements' style and
// contents are up to date.
export interface Model {
givingOrGetting : string;
usingCrypto : boolean;
inputDecrypted : boolean;
inputSigned : boolean;
userPublicKey : string;
friendPublicKey : string;
friendUserId : string; // e.g. 'Joe ',
readyForStep2 : boolean;
outboundMessageValue : string;
inboundText: string;
inputIsWellFormed : boolean;
proxyingState : string; // e.g. 'notYetAttempted',
endpoint : string; // E.g., '127.0.0.1:9999'
totalBytesReceived : number;
totalBytesSent : number;
}
export interface CopypasteApi {
// This is a promise for the freedom module stub.
onceReady :Promise>;
model :Model;
parseInboundMessages :(inboundMessageFieldValue:string) => void;
consumeInboundMessage :() => void;
verifyDecryptInboundMessage :(ciphertext:string) => void;
}