import { DevicePlatformType, type BaseCollectionPaginationCountResponse, type Entity } from '../';
import { type AdditionalDataHolder, type BackedModel, type Parsable, type ParseNode, type SerializationWriter } from '@microsoft/kiota-abstractions';
export interface Acronym extends Parsable, SearchAnswer {
    /**
     * The standsFor property
     */
    standsFor?: string;
    /**
     * The state property
     */
    state?: AnswerState;
}
export interface AcronymCollectionResponse extends BaseCollectionPaginationCountResponse, Parsable {
    /**
     * The value property
     */
    value?: Acronym[];
}
export interface AnswerKeyword extends AdditionalDataHolder, BackedModel, Parsable {
    /**
     * Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
     */
    additionalData?: Record<string, unknown>;
    /**
     * Stores model information.
     */
    backingStoreEnabled?: boolean;
    /**
     * The keywords property
     */
    keywords?: string[];
    /**
     * The matchSimilarKeywords property
     */
    matchSimilarKeywords?: boolean;
    /**
     * The OdataType property
     */
    odataType?: string;
    /**
     * The reservedKeywords property
     */
    reservedKeywords?: string[];
}
export type AnswerState = (typeof AnswerStateObject)[keyof typeof AnswerStateObject];
export interface AnswerVariant extends AdditionalDataHolder, BackedModel, Parsable {
    /**
     * Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
     */
    additionalData?: Record<string, unknown>;
    /**
     * Stores model information.
     */
    backingStoreEnabled?: boolean;
    /**
     * The description property
     */
    description?: string;
    /**
     * The displayName property
     */
    displayName?: string;
    /**
     * The languageTag property
     */
    languageTag?: string;
    /**
     * The OdataType property
     */
    odataType?: string;
    /**
     * The platform property
     */
    platform?: DevicePlatformType;
    /**
     * The webUrl property
     */
    webUrl?: string;
}
export interface Bookmark extends Parsable, SearchAnswer {
    /**
     * The availabilityEndDateTime property
     */
    availabilityEndDateTime?: Date;
    /**
     * The availabilityStartDateTime property
     */
    availabilityStartDateTime?: Date;
    /**
     * The categories property
     */
    categories?: string[];
    /**
     * The groupIds property
     */
    groupIds?: string[];
    /**
     * The isSuggested property
     */
    isSuggested?: boolean;
    /**
     * The keywords property
     */
    keywords?: AnswerKeyword;
    /**
     * The languageTags property
     */
    languageTags?: string[];
    /**
     * The platforms property
     */
    platforms?: DevicePlatformType[];
    /**
     * The powerAppIds property
     */
    powerAppIds?: string[];
    /**
     * The state property
     */
    state?: AnswerState;
    /**
     * The targetedVariations property
     */
    targetedVariations?: AnswerVariant[];
}
export interface BookmarkCollectionResponse extends BaseCollectionPaginationCountResponse, Parsable {
    /**
     * The value property
     */
    value?: Bookmark[];
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {AcronymCollectionResponse}
 */
export declare function createAcronymCollectionResponseFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {Acronym}
 */
export declare function createAcronymFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {AnswerKeyword}
 */
export declare function createAnswerKeywordFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {AnswerVariant}
 */
export declare function createAnswerVariantFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {BookmarkCollectionResponse}
 */
export declare function createBookmarkCollectionResponseFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {Bookmark}
 */
export declare function createBookmarkFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {Identity}
 */
export declare function createIdentityFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {IdentitySet}
 */
export declare function createIdentitySetFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {QnaCollectionResponse}
 */
export declare function createQnaCollectionResponseFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {Qna}
 */
export declare function createQnaFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {SearchAnswer}
 */
export declare function createSearchAnswerFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoAcronym(acronym?: Partial<Acronym> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoAcronymCollectionResponse(acronymCollectionResponse?: Partial<AcronymCollectionResponse> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoAnswerKeyword(answerKeyword?: Partial<AnswerKeyword> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoAnswerVariant(answerVariant?: Partial<AnswerVariant> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoBookmark(bookmark?: Partial<Bookmark> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoBookmarkCollectionResponse(bookmarkCollectionResponse?: Partial<BookmarkCollectionResponse> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoIdentity(identity?: Partial<Identity> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoIdentitySet(identitySet?: Partial<IdentitySet> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoQna(qna?: Partial<Qna> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoQnaCollectionResponse(qnaCollectionResponse?: Partial<QnaCollectionResponse> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoSearchAnswer(searchAnswer?: Partial<SearchAnswer> | undefined): Record<string, (node: ParseNode) => void>;
export interface Identity extends AdditionalDataHolder, BackedModel, Parsable {
    /**
     * Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
     */
    additionalData?: Record<string, unknown>;
    /**
     * Stores model information.
     */
    backingStoreEnabled?: boolean;
    /**
     * The displayName property
     */
    displayName?: string;
    /**
     * The id property
     */
    id?: string;
    /**
     * The OdataType property
     */
    odataType?: string;
}
export interface IdentitySet extends AdditionalDataHolder, BackedModel, Parsable {
    /**
     * Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
     */
    additionalData?: Record<string, unknown>;
    /**
     * The application property
     */
    application?: Identity;
    /**
     * Stores model information.
     */
    backingStoreEnabled?: boolean;
    /**
     * The device property
     */
    device?: Identity;
    /**
     * The OdataType property
     */
    odataType?: string;
    /**
     * The user property
     */
    user?: Identity;
}
export interface Qna extends Parsable, SearchAnswer {
    /**
     * The availabilityEndDateTime property
     */
    availabilityEndDateTime?: Date;
    /**
     * The availabilityStartDateTime property
     */
    availabilityStartDateTime?: Date;
    /**
     * The groupIds property
     */
    groupIds?: string[];
    /**
     * The isSuggested property
     */
    isSuggested?: boolean;
    /**
     * The keywords property
     */
    keywords?: AnswerKeyword;
    /**
     * The languageTags property
     */
    languageTags?: string[];
    /**
     * The platforms property
     */
    platforms?: DevicePlatformType[];
    /**
     * The state property
     */
    state?: AnswerState;
    /**
     * The targetedVariations property
     */
    targetedVariations?: AnswerVariant[];
}
export interface QnaCollectionResponse extends BaseCollectionPaginationCountResponse, Parsable {
    /**
     * The value property
     */
    value?: Qna[];
}
export interface SearchAnswer extends Entity, Parsable {
    /**
     * The description property
     */
    description?: string;
    /**
     * The displayName property
     */
    displayName?: string;
    /**
     * The lastModifiedBy property
     */
    lastModifiedBy?: IdentitySet;
    /**
     * The lastModifiedDateTime property
     */
    lastModifiedDateTime?: Date;
    /**
     * The webUrl property
     */
    webUrl?: string;
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeAcronym(writer: SerializationWriter, acronym?: Partial<Acronym> | undefined): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeAcronymCollectionResponse(writer: SerializationWriter, acronymCollectionResponse?: Partial<AcronymCollectionResponse> | undefined): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeAnswerKeyword(writer: SerializationWriter, answerKeyword?: Partial<AnswerKeyword> | undefined): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeAnswerVariant(writer: SerializationWriter, answerVariant?: Partial<AnswerVariant> | undefined): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeBookmark(writer: SerializationWriter, bookmark?: Partial<Bookmark> | undefined): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeBookmarkCollectionResponse(writer: SerializationWriter, bookmarkCollectionResponse?: Partial<BookmarkCollectionResponse> | undefined): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeIdentity(writer: SerializationWriter, identity?: Partial<Identity> | undefined): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeIdentitySet(writer: SerializationWriter, identitySet?: Partial<IdentitySet> | undefined): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeQna(writer: SerializationWriter, qna?: Partial<Qna> | undefined): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeQnaCollectionResponse(writer: SerializationWriter, qnaCollectionResponse?: Partial<QnaCollectionResponse> | undefined): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeSearchAnswer(writer: SerializationWriter, searchAnswer?: Partial<SearchAnswer> | undefined): void;
export declare const AnswerStateObject: {
    readonly Published: "published";
    readonly Draft: "draft";
    readonly Excluded: "excluded";
    readonly UnknownFutureValue: "unknownFutureValue";
};
//# sourceMappingURL=index.d.ts.map