export declare type MamamIDL = {
    "version": "0.0.0";
    "name": "mamam";
    "instructions": [{
        "name": "initializeExchange";
        "accounts": [{
            "name": "exchange";
            "isMut": true;
            "isSigner": false;
        }, {
            "name": "payer";
            "isMut": true;
            "isSigner": true;
        }, {
            "name": "systemProgram";
            "isMut": false;
            "isSigner": false;
        }, {
            "name": "rent";
            "isMut": false;
            "isSigner": false;
        }];
        "args": [{
            "name": "bump";
            "type": "u8";
        }];
    }, {
        "name": "initializeMarket";
        "accounts": [{
            "name": "exchange";
            "isMut": true;
            "isSigner": false;
        }, {
            "name": "market";
            "isMut": true;
            "isSigner": false;
        }, {
            "name": "coinMintPk";
            "isMut": false;
            "isSigner": false;
        }, {
            "name": "pcMintPk";
            "isMut": false;
            "isSigner": false;
        }, {
            "name": "coinVaultPk";
            "isMut": true;
            "isSigner": false;
        }, {
            "name": "pcVaultPk";
            "isMut": true;
            "isSigner": false;
        }, {
            "name": "bidsPk";
            "isMut": true;
            "isSigner": false;
        }, {
            "name": "asksPk";
            "isMut": true;
            "isSigner": false;
        }, {
            "name": "reqQPk";
            "isMut": true;
            "isSigner": false;
        }, {
            "name": "eventQPk";
            "isMut": true;
            "isSigner": false;
        }, {
            "name": "serumMarketAuthority";
            "isMut": false;
            "isSigner": false;
        }, {
            "name": "systemProgram";
            "isMut": false;
            "isSigner": false;
        }, {
            "name": "rent";
            "isMut": false;
            "isSigner": false;
        }, {
            "name": "serumDexProgram";
            "isMut": false;
            "isSigner": false;
        }];
        "args": [{
            "name": "vaultSignerNonce";
            "type": "u64";
        }];
    }, {
        "name": "initUserOnMarket";
        "accounts": [{
            "name": "exchange";
            "isMut": false;
            "isSigner": false;
        }, {
            "name": "serumOpenOrders";
            "isMut": true;
            "isSigner": false;
        }, {
            "name": "serumMarket";
            "isMut": false;
            "isSigner": false;
        }, {
            "name": "serumMarketAuthority";
            "isMut": false;
            "isSigner": false;
        }, {
            "name": "serumDexProgramId";
            "isMut": false;
            "isSigner": false;
        }, {
            "name": "user";
            "isMut": true;
            "isSigner": true;
        }, {
            "name": "systemProgram";
            "isMut": false;
            "isSigner": false;
        }, {
            "name": "rent";
            "isMut": false;
            "isSigner": false;
        }];
        "args": [{
            "name": "bump";
            "type": "u8";
        }];
    }, {
        "name": "placeOrder";
        "accounts": [{
            "name": "exchange";
            "isMut": false;
            "isSigner": false;
        }, {
            "name": "user";
            "isMut": false;
            "isSigner": true;
        }, {
            "name": "orderPayer";
            "isMut": true;
            "isSigner": false;
        }, {
            "name": "market";
            "isMut": true;
            "isSigner": false;
        }, {
            "name": "openOrders";
            "isMut": true;
            "isSigner": false;
        }, {
            "name": "requestQueue";
            "isMut": true;
            "isSigner": false;
        }, {
            "name": "eventQueue";
            "isMut": true;
            "isSigner": false;
        }, {
            "name": "bids";
            "isMut": true;
            "isSigner": false;
        }, {
            "name": "asks";
            "isMut": true;
            "isSigner": false;
        }, {
            "name": "coinVault";
            "isMut": true;
            "isSigner": false;
        }, {
            "name": "pcVault";
            "isMut": true;
            "isSigner": false;
        }, {
            "name": "serumDexProgramId";
            "isMut": false;
            "isSigner": false;
        }, {
            "name": "tokenProgram";
            "isMut": false;
            "isSigner": false;
        }, {
            "name": "rent";
            "isMut": false;
            "isSigner": false;
        }];
        "args": [{
            "name": "side";
            "type": "u8";
        }, {
            "name": "limit";
            "type": "u64";
        }, {
            "name": "maxCoinQty";
            "type": "u64";
        }, {
            "name": "maxPcQty";
            "type": "u64";
        }];
    }, {
        "name": "initializeAmm";
        "accounts": [{
            "name": "exchange";
            "isMut": true;
            "isSigner": false;
        }, {
            "name": "amm";
            "isMut": true;
            "isSigner": false;
        }, {
            "name": "vault1";
            "isMut": false;
            "isSigner": false;
        }, {
            "name": "vault2";
            "isMut": false;
            "isSigner": false;
        }, {
            "name": "market";
            "isMut": false;
            "isSigner": false;
        }, {
            "name": "oracle1";
            "isMut": false;
            "isSigner": false;
        }, {
            "name": "oracle2";
            "isMut": false;
            "isSigner": false;
        }, {
            "name": "payer";
            "isMut": true;
            "isSigner": true;
        }, {
            "name": "systemProgram";
            "isMut": false;
            "isSigner": false;
        }, {
            "name": "rent";
            "isMut": false;
            "isSigner": false;
        }];
        "args": [{
            "name": "bump";
            "type": "u8";
        }, {
            "name": "length";
            "type": "u64";
        }, {
            "name": "timeGranularity";
            "type": "u64";
        }, {
            "name": "range";
            "type": "u64";
        }];
    }, {
        "name": "initAmmOnMarket";
        "accounts": [{
            "name": "exchange";
            "isMut": false;
            "isSigner": false;
        }, {
            "name": "serumOpenOrders";
            "isMut": true;
            "isSigner": false;
        }, {
            "name": "serumMarket";
            "isMut": false;
            "isSigner": false;
        }, {
            "name": "serumMarketAuthority";
            "isMut": false;
            "isSigner": false;
        }, {
            "name": "serumDexProgramId";
            "isMut": false;
            "isSigner": false;
        }, {
            "name": "amm";
            "isMut": false;
            "isSigner": false;
        }, {
            "name": "payer";
            "isMut": true;
            "isSigner": true;
        }, {
            "name": "systemProgram";
            "isMut": false;
            "isSigner": false;
        }, {
            "name": "rent";
            "isMut": false;
            "isSigner": false;
        }];
        "args": [{
            "name": "bump";
            "type": "u8";
        }];
    }, {
        "name": "depositAmm";
        "accounts": [{
            "name": "exchange";
            "isMut": true;
            "isSigner": false;
        }, {
            "name": "amm";
            "isMut": true;
            "isSigner": false;
        }, {
            "name": "vault1";
            "isMut": true;
            "isSigner": false;
        }, {
            "name": "vault2";
            "isMut": true;
            "isSigner": false;
        }, {
            "name": "userToken1";
            "isMut": true;
            "isSigner": false;
        }, {
            "name": "userToken2";
            "isMut": true;
            "isSigner": false;
        }, {
            "name": "user";
            "isMut": true;
            "isSigner": true;
        }, {
            "name": "tokenProgram";
            "isMut": false;
            "isSigner": false;
        }, {
            "name": "systemProgram";
            "isMut": false;
            "isSigner": false;
        }];
        "args": [{
            "name": "value1";
            "type": "u64";
        }, {
            "name": "value2";
            "type": "u64";
        }];
    }, {
        "name": "updatePrice";
        "accounts": [{
            "name": "exchange";
            "isMut": true;
            "isSigner": false;
        }, {
            "name": "amm";
            "isMut": true;
            "isSigner": false;
        }, {
            "name": "oracle1";
            "isMut": false;
            "isSigner": false;
        }, {
            "name": "oracle2";
            "isMut": false;
            "isSigner": false;
        }, {
            "name": "vault1";
            "isMut": true;
            "isSigner": false;
        }, {
            "name": "vault2";
            "isMut": true;
            "isSigner": false;
        }, {
            "name": "market";
            "isMut": true;
            "isSigner": false;
        }, {
            "name": "openOrders";
            "isMut": true;
            "isSigner": false;
        }, {
            "name": "requestQueue";
            "isMut": true;
            "isSigner": false;
        }, {
            "name": "eventQueue";
            "isMut": true;
            "isSigner": false;
        }, {
            "name": "bids";
            "isMut": true;
            "isSigner": false;
        }, {
            "name": "asks";
            "isMut": true;
            "isSigner": false;
        }, {
            "name": "coinVault";
            "isMut": true;
            "isSigner": false;
        }, {
            "name": "pcVault";
            "isMut": true;
            "isSigner": false;
        }, {
            "name": "pruneAuthority";
            "isMut": false;
            "isSigner": false;
        }, {
            "name": "serumDexProgramId";
            "isMut": false;
            "isSigner": false;
        }, {
            "name": "tokenProgram";
            "isMut": false;
            "isSigner": false;
        }, {
            "name": "rent";
            "isMut": false;
            "isSigner": false;
        }];
        "args": [];
    }];
    "accounts": [{
        "name": "exchange";
        "type": {
            "kind": "struct";
            "fields": [{
                "name": "authority";
                "type": "publicKey";
            }, {
                "name": "markets";
                "type": {
                    "vec": {
                        "defined": "MarketData";
                    };
                };
            }, {
                "name": "amms";
                "type": {
                    "vec": {
                        "defined": "AmmData";
                    };
                };
            }];
        };
    }, {
        "name": "amm";
        "type": {
            "kind": "struct";
            "fields": [{
                "name": "market";
                "type": {
                    "defined": "MarketData";
                };
            }, {
                "name": "marketAddress";
                "type": "publicKey";
            }, {
                "name": "vault1";
                "type": "publicKey";
            }, {
                "name": "vault2";
                "type": "publicKey";
            }, {
                "name": "ema";
                "type": "u64";
            }, {
                "name": "timestamp";
                "type": "u64";
            }, {
                "name": "length";
                "type": "u64";
            }, {
                "name": "timeGranularity";
                "type": "u64";
            }, {
                "name": "range";
                "type": "u64";
            }];
        };
    }];
    "types": [{
        "name": "SerumData";
        "type": {
            "kind": "struct";
            "fields": [{
                "name": "coinLotSize";
                "type": "u64";
            }, {
                "name": "pcLotSize";
                "type": "u64";
            }, {
                "name": "vaultSignerNonce";
                "type": "u64";
            }, {
                "name": "pcDustThreshold";
                "type": "u64";
            }];
        };
    }, {
        "name": "AmmData";
        "type": {
            "kind": "struct";
            "fields": [{
                "name": "address";
                "type": "publicKey";
            }, {
                "name": "marketAddress";
                "type": "publicKey";
            }];
        };
    }, {
        "name": "MarketData";
        "type": {
            "kind": "struct";
            "fields": [{
                "name": "address";
                "type": "publicKey";
            }, {
                "name": "pairName";
                "type": "string";
            }, {
                "name": "asset1";
                "type": {
                    "defined": "AssetData";
                };
            }, {
                "name": "asset2";
                "type": {
                    "defined": "AssetData";
                };
            }];
        };
    }, {
        "name": "AssetData";
        "type": {
            "kind": "struct";
            "fields": [{
                "name": "symbol";
                "type": {
                    "defined": "Symbol";
                };
            }, {
                "name": "tokenMint";
                "type": "publicKey";
            }, {
                "name": "spotOracle";
                "type": "publicKey";
            }];
        };
    }, {
        "name": "ErrorCode";
        "type": {
            "kind": "enum";
            "variants": [{
                "name": "SampleError";
            }];
        };
    }, {
        "name": "Symbol";
        "type": {
            "kind": "enum";
            "variants": [{
                "name": "BTC";
            }, {
                "name": "ETH";
            }, {
                "name": "USDC";
            }];
        };
    }];
    "metadata": {
        "address": "3HGwuAEzU8vtqZasvKsYWF34cdw7j4y3AbtWJo1BrN19";
    };
};
import { IdlAccounts } from '@project-serum/anchor';
export declare type ErrorCode = Record<string, Record<string, any>>;
export declare const ErrorCode: {
    SampleError: {
        sampleerror: {};
    };
};
export declare type Symbol = Record<string, Record<string, any>>;
export declare const Symbol: {
    BTC: {
        btc: {};
    };
    ETH: {
        eth: {};
    };
    USDC: {
        usdc: {};
    };
};
export declare type Exchange = IdlAccounts<MamamIDL>["exchange"];
export declare type Amm = IdlAccounts<MamamIDL>["amm"];
