/**
 * This file was automatically generated by @cosmwasm/ts-codegen@0.35.3.
 * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
 * and run the @cosmwasm/ts-codegen generate command to regenerate this file.
 */
export interface InstantiateMsg {
    owner: string;
}
export type ExecuteMsg = {
    ownable: OwnableMsg;
} | {
    post_dispatch: PostDispatchMsg;
} | {
    router: RouterMsgForAddr;
} | {
    register_custom_hook: RegisterCustomHookMsg;
} | {
    register_custom_hooks: RegisterCustomHookMsg[];
} | {
    clear_custom_hook: ClearCustomHookMsg;
} | {
    clear_custom_hooks: ClearCustomHookMsg[];
};
export type OwnableMsg = {
    init_ownership_transfer: {
        next_owner: string;
    };
} | {
    revoke_ownership_transfer: {};
} | {
    claim_ownership: {};
};
export type HexBinary = string;
export type RouterMsgForAddr = {
    set_route: {
        set: DomainRouteSetForAddr;
    };
} | {
    set_routes: {
        set: DomainRouteSetForAddr[];
    };
};
export type Addr = string;
export interface PostDispatchMsg {
    message: HexBinary;
    metadata: HexBinary;
}
export interface DomainRouteSetForAddr {
    domain: number;
    route?: Addr | null;
}
export interface RegisterCustomHookMsg {
    dest_domain: number;
    hook: string;
    recipient: string;
}
export interface ClearCustomHookMsg {
    dest_domain: number;
    recipient: string;
}
export type QueryMsg = {
    ownable: OwnableQueryMsg;
} | {
    router: RouterQueryForAddr;
} | {
    hook: HookQueryMsg;
} | {
    custom_routing_hook: CustomRoutingHookQueryMsg;
};
export type OwnableQueryMsg = {
    get_owner: {};
} | {
    get_pending_owner: {};
};
export type RouterQueryForAddr = {
    domains: {};
} | {
    get_route: {
        domain: number;
    };
} | {
    list_routes: {
        limit?: number | null;
        offset?: number | null;
        order?: Order | null;
    };
};
export type Order = 'asc' | 'desc';
export type HookQueryMsg = {
    quote_dispatch: QuoteDispatchMsg;
} | {
    mailbox: {};
};
export type CustomRoutingHookQueryMsg = {
    custom_hook: {
        dest_domain: number;
        recipient: string;
    };
} | {
    custom_hooks: {
        dest_domain: number;
        limit?: number | null;
        offset?: string | null;
        order?: Order | null;
    };
};
export interface QuoteDispatchMsg {
    message: HexBinary;
    metadata: HexBinary;
}
export interface CustomHookResponse {
    dest_domain: number;
    hook: string;
    recipient: string;
}
export interface CustomHooksResponse {
    custom_hooks: CustomHookResponse[];
}
export interface DomainsResponse {
    domains: number[];
}
export interface OwnerResponse {
    owner: Addr;
}
export interface PendingOwnerResponse {
    pending_owner?: Addr | null;
}
export interface RouteResponseForAddr {
    route: DomainRouteSetForAddr;
}
export interface RoutesResponseForAddr {
    routes: DomainRouteSetForAddr[];
}
export interface MailboxResponse {
    mailbox: string;
}
export interface Empty {
    [k: string]: unknown;
}
export type Uint128 = string;
export interface QuoteDispatchResponse {
    gas_amount?: Coin | null;
}
export interface Coin {
    amount: Uint128;
    denom: string;
    [k: string]: unknown;
}
//# sourceMappingURL=HookRoutingCustom.types.d.ts.map