> For the complete documentation index, see [llms.txt](https://docs.ready.co/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ready.co/tools/invisible-sdk-deprecated/types-and-interfaces.md).

# Types and interfaces

```typescript
declare type InitParams = {
    appName: string;
    sessionParams: SessionParameters;
    paymasterParams?: PaymasterParameters;
    webwalletUrl?: string;
    environment?: keyof typeof ENVIRONMENTS;
    provider?: ProviderInterface;
};
```

```tsx
type SessionParameters = {
  allowedMethods: Array<{
    contract: string;
    selector: string;
  }>;
  validityDays?: number;
};
```

```typescript
type PaymasterParameters = {
    baseUrl?: string;
    apiKey?: string;
    tokenAddress?: Address;
};
```

```tsx
type ConnectResponse = {
    account: SessionAccount;
    user?: User;
    callbackData?: string;
    approvalTransactionHash?: string;
    approvalRequestsCalls?: Call[];
    deploymentPayload?: AccountDeploymentPayload;  
};
```

<pre class="language-tsx"><code class="lang-tsx">interface SessionAccountInterface extends AccountInterface {
  isDeployed(): Promise&#x3C;boolean>;
  getDeploymentPayload(): Promise&#x3C;DeployAccountContractPayload>;
  getOutsideExecutionPayload({ calls }: { calls: Call[] }): Promise&#x3C;Call>;
  getSessionStatus(): SessionStatus; // "VALID" | "EXPIRED" | "INVALID_SCOPE"
  signMessageFromOutside(typedData: TypedData, calls: Call[]): Promise&#x3C;ArraySignatureType>;
<strong>}
</strong></code></pre>

```typescript
declare interface ArgentWebWalletInterface {
    provider: ProviderInterface;
    sessionAccount?: SessionAccountInterface;
    isConnected(): Promise<boolean>;
    connect(): Promise<ConnectResponse | undefined>;
    requestConnection({ callbackData, approvalRequests, }: {
        callbackData?: string;
        approvalRequests?: ApprovalRequest[];
    }): Promise<ConnectResponse | undefined>;
    requestApprovals(approvalRequests: ApprovalRequest[]): Promise<string>;
    exportSignedSession(): Promise<SignedSession | undefined>;
    clearSession(): Promise<void>;
}
```
