import { AccountMeta, AccountSignerMeta, Address, FixedSizeCodec, FixedSizeDecoder, FixedSizeEncoder, Instruction, InstructionWithAccounts, InstructionWithData, ReadonlyAccount, ReadonlyUint8Array, TransactionSigner, WritableAccount, WritableSignerAccount } from '@solana/kit';
import { WAVEBREAK_PROGRAM_ADDRESS } from '../programs';
export declare const AUTHORITY_CONFIG_INITIALIZE_DISCRIMINATOR = 16;
export declare function getAuthorityConfigInitializeDiscriminatorBytes(): ReadonlyUint8Array;
export type AuthorityConfigInitializeInstruction<TProgram extends string = typeof WAVEBREAK_PROGRAM_ADDRESS, TAccountAuthority extends string | AccountMeta<string> = string, TAccountAuthorityConfig extends string | AccountMeta<string> = string, TAccountSystemProgram extends string | AccountMeta<string> = "11111111111111111111111111111111", TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[
    TAccountAuthority extends string ? WritableSignerAccount<TAccountAuthority> & AccountSignerMeta<TAccountAuthority> : TAccountAuthority,
    TAccountAuthorityConfig extends string ? WritableAccount<TAccountAuthorityConfig> : TAccountAuthorityConfig,
    TAccountSystemProgram extends string ? ReadonlyAccount<TAccountSystemProgram> : TAccountSystemProgram,
    ...TRemainingAccounts
]>;
export type AuthorityConfigInitializeInstructionData = {
    discriminator: number;
};
export type AuthorityConfigInitializeInstructionDataArgs = {};
export declare function getAuthorityConfigInitializeInstructionDataEncoder(): FixedSizeEncoder<AuthorityConfigInitializeInstructionDataArgs>;
export declare function getAuthorityConfigInitializeInstructionDataDecoder(): FixedSizeDecoder<AuthorityConfigInitializeInstructionData>;
export declare function getAuthorityConfigInitializeInstructionDataCodec(): FixedSizeCodec<AuthorityConfigInitializeInstructionDataArgs, AuthorityConfigInitializeInstructionData>;
export type AuthorityConfigInitializeInput<TAccountAuthority extends string = string, TAccountAuthorityConfig extends string = string, TAccountSystemProgram extends string = string> = {
    authority: TransactionSigner<TAccountAuthority>;
    authorityConfig: Address<TAccountAuthorityConfig>;
    systemProgram?: Address<TAccountSystemProgram>;
};
export declare function getAuthorityConfigInitializeInstruction<TAccountAuthority extends string, TAccountAuthorityConfig extends string, TAccountSystemProgram extends string, TProgramAddress extends Address = typeof WAVEBREAK_PROGRAM_ADDRESS>(input: AuthorityConfigInitializeInput<TAccountAuthority, TAccountAuthorityConfig, TAccountSystemProgram>, config?: {
    programAddress?: TProgramAddress;
}): AuthorityConfigInitializeInstruction<TProgramAddress, TAccountAuthority, TAccountAuthorityConfig, TAccountSystemProgram>;
export type ParsedAuthorityConfigInitializeInstruction<TProgram extends string = typeof WAVEBREAK_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = {
    programAddress: Address<TProgram>;
    accounts: {
        authority: TAccountMetas[0];
        authorityConfig: TAccountMetas[1];
        systemProgram: TAccountMetas[2];
    };
    data: AuthorityConfigInitializeInstructionData;
};
export declare function parseAuthorityConfigInitializeInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedAuthorityConfigInitializeInstruction<TProgram, TAccountMetas>;
